如何处理活动中的后退按钮
如何处理活动中的后退按钮。 我在哪里有一些按钮。 如果我点击其中一个按钮,它将重定向到我需要的按钮。 它工作正常,但当我按回按钮它完成。
如何解决这个问题呢。 我对所有这些按钮只有一项活动。 提前致谢。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
return false; //I have tried here true also
}
return super.onKeyDown(keyCode, event);
}
我用上面的代码来处理返回按钮,但它不工作。 当我按回它按钮时,它自己在那里。
你可以像这样处理它:
API等级5以上
@Override
public void onBackPressed() {
// your code.
}
比API 5旧
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// your code
return true;
}
return super.onKeyDown(keyCode, event);
}
除了上述我个人建议
onKeyUp():
当用户开始按压键编程说到的keydown会火,但同时用户保持按压了键就会重复。*
这对所有的开发平台都是如此。
谷歌开发建议,如果您在视图中拦截BACK按钮,则应该在keydown上跟踪启动跟踪KeyEvent,然后使用keyup调用。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
&& !event.isCanceled()) {
// *** Your Code ***
return true;
}
return super.onKeyUp(keyCode, event);
}
对于硬件设备后退按钮和软家庭(后退)按钮,例如“< - ”,这对我很有用。 (*注意我在活动中有一个应用程序栏/工具栏)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//finish();
onBackPressed();
break;
}
return true;
}
@Override
public void onBackPressed() {
//Execute your code here
finish();
}
干杯!
链接地址: http://www.djcxy.com/p/31897.html