2012-03-05 67 views
9

我想在我的應用程序中實現後退按鈕功能。在應用程序中,當我點擊中間的後退按鈕時,我的控件將直接登錄頁面,那麼有人可以告訴我在哪裏覆蓋onKeyDown()onBackPressed()方法嗎?onKeyDown()或onBackPressed()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

,因爲我在寫這裏面的onCreate和也的onCreate外,但它不工作......

+0

在一般情況下,像'的onkeydown方法()'外面寫,或'onBackPressed()'應該是覆蓋(您可以利用IDE,即是,Eclipse的,這樣做的漂亮),所以他們應該超出'onCreate()'。你能準確解釋你的問題嗎?怎麼了? – Huang 2012-03-05 12:10:17

+0

看看這個答案:http://stackoverflow.com/a/3558613/571353 – SERPRO 2012-03-05 12:12:14

+1

add @Override上面的函數... ??? – mihail 2012-03-05 12:14:33

回答

7

取決於你是否願意支持預Android 2.0的手機。 onBackPressed()方法已添加到Android 2.0(API 5)。

你可能想閱讀詳細內容在Android開發者博客這個帖子:

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

+0

感謝的人,但在哪裏寫這個方法????因爲我試圖寫這個方法內onCreate和外側onCreate也仍然控制不會在方法內你可以幫我通過簡單的答案? – user1249134 2012-03-05 12:21:03

+0

謝謝你們每一個.... :-)))))你們是輝煌............. – user1249134 2012-03-05 12:49:17

3

是的,你可以覆蓋後退按鈕

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

通過這個,你可以繼續任何活動。這是非常容易和簡單的方法

1

如果您的問題是關於從歷史堆棧中刪除登錄活動。

執行完成();在您的登錄活動中,當您從其中開始任何其他活動時,請參閱下面的代碼

+0

3-05 14:13:56.327:W/KeyCharacterMap(374) :使用默認的鍵盤映射:/system/usr/keychars/qwerty.kcm.bin – user1249134 2012-03-05 14:17:53

+0

HELLO朋友我的控制不進入OnBack方法嗎?任何機構可以幫助重新調整嗎? – user1249134 2012-03-05 14:43:27

+0

Intent edit = new Intent(getParent(),MyGroup.class); \t \t TabGroupActivity parentActivity =(TabGroupActivity)getParent(); \t \t parentActivity.startChildActivity(「Add contacts」,edit); – user1249134 2012-03-05 14:44:51

3

請參閱下面的代碼。在的onCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    }