如何在对话框中专门覆盖后退按钮以完成整个活动,而不仅仅是对话框。
使用setOnCancelListener和setOnDismissListener不起作用,因为有时我只是关闭对话框而不关闭它背后的整个活动。
修改
谢谢Shubayu可能有效!
我还可以通过此功能访问对话框中的后退按钮。
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK){
finish();
}
return false;
}
});
答案 0 :(得分:0)
覆盖
活动的public void onBackPressed()
并以你想要的方式放入其中。还可以在对话框中设置一个布尔值,该对话框在Activity的onBackPressed()中使用。如果布尔值为true,则运行onBackPressed()代码的禁用部分,否则不运行。
答案 1 :(得分:0)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK){
// your logic goes here
return true;
}
return super.onKeyDown(keyCode, event);
}
使用上面的代码::
答案 2 :(得分:0)
您可以使用:dialog.setOnCancelListener(.....)
首先设置dialog.setCancelable(true);
比你可以放在代码下面:
dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
@Override
public void onCancel(DialogInterface dialog)
{
// add code backpress
}
});