如何重写一个 Dialog 的 onBackPressed 方法来关闭对话框,同时调用 Activity 中的finish()方法?
你可以使用 setOnCancelListener:
dialog.setOnCancelListener(new DialogInterface.OnCancelListener listener()
{
@Override
void onCancel(DialogInterface dialog)
{
MyActivity.this.finish();
}
});
你只需要完成你的 activity,对话框就会自动消失。
自定义一个MyDialog类继承源码的Dialog.java (frameworks\base\core\java\android\app)
,重写里面的onBackPressed()
不可以吗?
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
dialog.cancel();
return true;
}
return false;
}
})