2013-07-20 217 views
0

請看看下面的代碼處理後退按鈕

private class HandleBackButton implements OnKeyListener 
    { 

     @Override 
     public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
      // TODO Auto-generated method stub 

      if(arg1==KeyEvent.KEYCODE_BACK) 
      { 
       showResults(0); 
      } 
      return true; 
     } 

    } 

我有點新的Android和我的目的是在點擊後退按鈕時,操作上面的代碼。用戶可以隨時點擊後退按鈕。但是,如何將此偵聽器設置爲活動?我找不到像this.setOnKeyListener()這樣的東西。如果有問題,我正在使用android 2.3.3。請幫助

回答

2

只要覆蓋活動的onKeyDown()方法。 然後,您不必設置偵聽器。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if(keyCode == KeyEvent.KEYCODE_BACK) 
     { 
      showResults(0); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

您也可以選擇覆蓋onBackPressed()如果您的API等級> = 5

+0

我用onBackPressed()。謝謝 :) –

3

對於活動,您應該覆蓋onBackPressed當您按下後退按鈕時調用該活動。 OnKeyListener將關鍵事件分派給視圖。你會發現在視圖類時,硬件密鑰 事件被分派到這個觀點時要調用回調

接口定義定義setOnKeyListener。回調將在 之前調用關鍵事件給視圖。這僅適用於硬件 鍵盤;軟件輸入法沒有義務觸發此監聽器。

+0

謝謝你很多的onBackPressed()的建議。對此,我真的非常感激。 +1從我:) –

+0

不客氣 – Blackbelt