【问题标题】:AlertDialog dismissed when back pressed后按时 AlertDialog 关闭
【发布时间】:2013-05-14 16:16:58
【问题描述】:

我正在使用具有以下属性的警报对话框。问题是当我单击后退按钮或触摸对话框外部时对话框被关闭,我不想要那个。我该如何解决这个问题,因为 setCancelable 没有帮助。

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.check_internet);
    builder.setCancelable(false);

【问题讨论】:

标签: android android-dialog android-dialogfragment


【解决方案1】:

由于您要扩展 DialogFragment,因此您需要致电

setCancelable(false);

在其onCreate

仅限setCancelable(false);

【讨论】:

    【解决方案2】:
    AlertDialog.Builder builder = new AlertDialog.Builder(this); // this activity context
    builder.setMessage(R.string.check_internet);
    AlertDialog alertDialog =builder.create();
    alertDialog.setCancelable(false);
    alertDialog.show();
    

    【讨论】:

      【解决方案3】:
      new AlertDialog.Builder(getActivity());
      

      尝试在栈底(不是栈顶)放一个activity

      【讨论】:

        【解决方案4】:
           public void showAlert1(){
             MainActivity.this.runOnUiThread(new Runnable() {
             public void run() {
             AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                            builder.setMessage(R.string.check_internet); 
                            builder.setIcon(R.drawable.tick);
                            builder.setCancelable(false);
                            AlertDialog alert = builder.create();
                            alert.show();              
                        }
                    });
                   }
        

        【讨论】:

          【解决方案5】:

          不,这是警报对话框的默认行为,请参阅此链接dialog

          【讨论】:

          • 关于该评论的注释。您可以实现 onDismiss,但它似乎至少需要 API 17。
          【解决方案6】:

          这是所有 Android 设备的默认行为,在更改之前请三思而后行,因为用户在按下时预计会这样做返回按钮

          但是,您可以通过 覆盖 Dialog/DialogFragment 类的 OnBackPressed() 方法来更改该行为。不要在被覆盖的函数中调用super.OnBackPressed(),但是可能会泄漏内存,所以要小心..

          【讨论】:

          • onBackPressed 在扩展 DialogFragment 的类中不可用
          猜你喜欢
          • 1970-01-01
          • 2013-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-09
          • 1970-01-01
          • 2014-11-23
          相关资源
          最近更新 更多