当按下后,AlertDialog被解雇

时间:2013-05-13 11:53:04

标签: android android-dialog android-dialogfragment

我正在使用具有以下属性的警告对话框。问题是当我单击后退按钮或触摸对话框外我不想要那个对话框是不行的。我怎么能解决这个问题因为setCancelable没有帮助。

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

6 个答案:

答案 0 :(得分:18)

由于您要延长DialogFragment,您需要致电

setCancelable(false);

onCreate

setCancelable(false);

答案 1 :(得分: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();

答案 2 :(得分:0)

new AlertDialog.Builder(getActivity());

尝试在那里放置一个活动,它位于堆栈的底部(不是顶部)

答案 3 :(得分:0)

这是所有 Android 设备的默认行为,在更改之前请三思而后行,因为当用户期望后退按钮

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

答案 4 :(得分:0)

   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 :(得分:0)

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