如何在用户通过按Android中的backKey关闭警报对话框时捕获事件

时间:2012-02-15 07:37:29

标签: android

当用户按下后退键并尝试关闭对话框时,我需要捕获一个事件 我有这样的代码

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create();
    alertDialog.setTitle("Caution");
    alertDialog.setMessage("Alert");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
        finish();
    } });
    alertDialog.show();
}

现在我已经给了用户一个选项,但是假设他按下后退键然后我需要执行一些其他操作。如何做到这一点?

4 个答案:

答案 0 :(得分:26)

这会对你有所帮助

alertDialog.setOnCancelListener(new OnCancelListener() {
    public void onCancel(DialogInterface dialog) {
        // Your code ...                
    }
});

答案 1 :(得分:1)

您可以捕获后退键事件 当您的警报出现时,将某个布尔值设置为true

AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this).create();
    alertDialog.setTitle("Caution");
    alertDialog.setMessage("Alert");
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
        finish();
    } });
  isAlertShowing = true;   // set to true for alert
    alertDialog.show();
}

然后在事件中

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {
  if (keyCode == KeyEvent.KEYCODE_BACK) 
        {
            if(isAlertShowing)
            {
               // perform your task here
             }

        }

        return super.onKeyDown(keyCode, event);
 }

答案 2 :(得分:1)

还有

alertDialog.setOnDismissListener(dialog -> { /* code goes here */ });

似乎特别处理了解雇事件。

答案 3 :(得分:0)

创建一个用于管理后退键事件的按钮。现在在onClick事件中尝试提供下面给出的代码。

back_key.setOnClickListener(new OnClickListener() 
{

        public void onClick(View v) 
        {
             // Your Tracking Code
        }
});