我正在使用具有以下属性的警报对话框。问题是当我单击后退按钮或在对话框外部触摸我不想要的时对话框被关闭。我该如何解决这个问题,因为 setCancelable 没有帮助。
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.check_internet);
builder.setCancelable(false);
我正在使用具有以下属性的警报对话框。问题是当我单击后退按钮或在对话框外部触摸我不想要的时对话框被关闭。我该如何解决这个问题,因为 setCancelable 没有帮助。
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.check_internet);
builder.setCancelable(false);
由于您正在扩展 aDialogFragment
您需要致电
setCancelable(false);
在它里面onCreate
只要setCancelable(false);
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();
new AlertDialog.Builder(getActivity());
尝试在那里放置一个活动,它位于堆栈的底部(而不是顶部)
这是所有Android设备的默认行为,在更改之前请三思而后行,因为用户在按下后退按钮时会期望它。
但是,您可以通过覆盖 OnBackPressed()
类的方法来更改该行为Dialog/DialogFragment
。不要super.OnBackPressed()
在被覆盖的函数内部调用,但是这可能会泄漏内存,所以要小心..
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();
}
});
}
不,这是警报对话框的默认行为,请参阅此链接对话框