如何在不知道是哪个对话框的情况下关闭任何正在运行的对话框?

时间:2019-02-06 08:26:55

标签: android

我正在寻找类似的东西...

Activity currentActivity = 
((MyApp)context.getApplicationContext()).getCurrentActivity();

...但是用于对话框。

类似getCurrentView()的东西返回在前面运行的当前视图,然后我可以从外面关闭它们。

我没有对话框的实例来调用dismiss。

在运行的任何窗口中,我都可以控制他的绑定吗?

我创建的对话框如下:

final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext).setView(dialogView)
                .setTitle(mPolicyInterface.getTitle()).setMessage(mPInterface.getSubTitle());

1 个答案:

答案 0 :(得分:2)

有3种方法可以实现

  1. 为此创建一个单例对象
  2. 使用对话框片段
  3. 设置后按监听器

    dialog.setOnKeyListener(新Dialog.OnKeyListener(){

                    @Override
                    public boolean onKey(DialogInterface arg0, int keyCode,
                                         KeyEvent event) {
                        // TODO Auto-generated method stub
    
                        //Back Key for edit shift amount fix
                        if (keyCode == KeyEvent.KEYCODE_DEL) {
                            return false;
                        }
                        if (keyCode == KeyEvent.KEYCODE_BACK) {
    
                            dialog.dismiss();
                        }
                        return true;
                    }
                });