覆盖对话框onBackPressed()?

Ski*_*zit 28 android dialog

我将如何重写DialogonBackPressed关闭对话框以及调用finish()Activity它位于?

ina*_*ruk 56

你可以使用setOnCancelListener:

dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
         MyActivity.this.finish();
    }
});
Run Code Online (Sandbox Code Playgroud)

您只需要完成您的活动.对话框将自动被解雇.

  • +1指向我正确的方向,我正在寻找的效果是onDismissListener但足够接近:-) (2认同)

小智 24

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;
                    }
                })
Run Code Online (Sandbox Code Playgroud)


Den*_*ldt 5

@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
  return new Dialog(getActivity(), getTheme()){
    @Override
    public void onBackPressed(){
      // dismiss();
      // activityReference.finish();
    }
  };
}
Run Code Online (Sandbox Code Playgroud)