我只想在用户选择框中的一个可用选项时关闭警报对话框,而在单击警报对话框周围的褪色区域时不关闭。那么如何防止警报对话框以这种方式关闭呢?
if (totalCount == 10){
AlertDialog.Builder rateDialog = new AlertDialog.Builder(MainActivity.this);
LayoutInflater layoutInflater = getLayoutInflater();
View view = layoutInflater.inflate(R.layout.rating_deign, null);
rateDialog.setView(view);
final AlertDialog alert = rateDialog.create();
alert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
alert.show();
btn_rate = view.findViewById(R.id.btn_rate);
close = view.findViewById(R.id.close);
btn_rate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
totalCount = 12;
editor.commit();
alert.cancel();
}
});
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
totalCount = 0;
editor.commit();
alert.cancel();
}
});
}
2条答案
按热度按时间kwvwclae1#
alert.setCancelable(false)
你需要补充。设置对话框是否可取消。默认值为true。
u4vypkhs2#
ratedialog.Dismission是正确答案。
从setcancelable开始,您将最小化对话框而不是关闭。通过设置setcancelable(false),您可以通过单击“活动”中除对话框之外的任何位置来取消(消失)对话框。
结论:要关闭对话框,请使用dismise()。