Android AlertDialog 不应因背景点击而消失
Android AlertDialog shouldn't disappear by background click
我在 Android Studio 中 java 并且有一个带两个按钮的 AlertDialog。我的问题是:当我按下背景而不是按钮时,我可以禁用该对话框不会消失吗?
我使用这段代码来显示对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogTheme);
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_wellcome_start_dialog,(ConstraintLayout)findViewById(R.id.layoutDialogConstrainer));
builder.setView(view);
((TextView) view.findViewById(R.id.textTitle)).setText(getResources().getString(R.string.titel));
((TextView) view.findViewById(R.id.textMessage)).setText(getResources().getString(R.string.startinfoone));
((Button) view.findViewById(R.id.buttonYes)).setText(getResources().getString(R.string.ok));
((Button) view.findViewById(R.id.buttonNo)).setText(getResources().getString(R.string.ueberspringen));
((ImageView) view.findViewById(R.id.imageIcon)).setImageResource(R.drawable.ic_info);
final AlertDialog alertDialog = builder.create();
view.findViewById(R.id.buttonYes).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
weiter();
}
});
view.findViewById(R.id.buttonNo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
if (alertDialog.getWindow() != null){
alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}
alertDialog.show();
谢谢!
将 AlertDialog.Builder 的 setCancelable 属性 设置为 false:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogTheme);
builder.setCancelable(false);
还有alertDialog.setCanceledOnTouchOutside(false);
我在 Android Studio 中 java 并且有一个带两个按钮的 AlertDialog。我的问题是:当我按下背景而不是按钮时,我可以禁用该对话框不会消失吗?
我使用这段代码来显示对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogTheme);
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_wellcome_start_dialog,(ConstraintLayout)findViewById(R.id.layoutDialogConstrainer));
builder.setView(view);
((TextView) view.findViewById(R.id.textTitle)).setText(getResources().getString(R.string.titel));
((TextView) view.findViewById(R.id.textMessage)).setText(getResources().getString(R.string.startinfoone));
((Button) view.findViewById(R.id.buttonYes)).setText(getResources().getString(R.string.ok));
((Button) view.findViewById(R.id.buttonNo)).setText(getResources().getString(R.string.ueberspringen));
((ImageView) view.findViewById(R.id.imageIcon)).setImageResource(R.drawable.ic_info);
final AlertDialog alertDialog = builder.create();
view.findViewById(R.id.buttonYes).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
weiter();
}
});
view.findViewById(R.id.buttonNo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
if (alertDialog.getWindow() != null){
alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}
alertDialog.show();
谢谢!
将 AlertDialog.Builder 的 setCancelable 属性 设置为 false:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.AlertDialogTheme);
builder.setCancelable(false);
还有alertDialog.setCanceledOnTouchOutside(false);