2012-03-05 89 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; 
    }