如何处理活动中的后退按钮?我有一些纽扣。如果我点击其中一个按钮,它会重定向到我需要的按钮。它工作得很好,但当我按下后退按钮时,它就完成了。
如何解决这个问题。对于所有这些按钮,我只有一个活动。提前谢谢。
@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);
}
我已经使用上面的代码来处理后退按钮,但它不工作。当我按下“后退”按钮时,它就会在那里自动跳动。
发布于 2016-06-15 11:03:19
对于硬件设备的后退按钮和软的主页(后退)按钮,例如“<-”,这对我来说是有效的。(*注意,我在活动中有一个应用程序栏/工具栏)
@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();
}
干杯!
发布于 2011-03-15 21:28:49
一种更简单的方法是捕获Back按钮按下并调用moveTaskToBack(true),如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
Android2.0引入了一种新的onBackPressed方法,these recommendations介绍了如何处理后退按钮
发布于 2011-05-19 19:13:44
您应该使用:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
// Take care of calling this method on earlier versions of
// the platform where it doesn't exist.
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
// This will be called either automatically for you on 2.0
// or later, or by the code above on earlier versions of the
// platform.
return;
}
如下所示:http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
如果您正在使用旧版本编译代码,请将android.os.Build.VERSION_CODES.ECLAIR替换为5(例如,您可以添加一个名为ECLAIR的私有int )
https://stackoverflow.com/questions/5312334
复制相似问题