我的简单代码在Android中显示了一个Dialog。当用户在对话框外部单击或对话框失去焦点时,我不想隐藏对话框。我该怎么办?
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
Toast.makeText(getApplicationContext(), "yes", Toast.LENGTH_LONG).show();
break;
case DialogInterface.BUTTON_NEGATIVE:
Toast.makeText(getApplicationContext(), "no", Toast.LENGTH_LONG).show();
break;
}
}
};
按钮代码为:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure?")
.setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
感谢。
答案 0 :(得分:5)
如果在dialog.setCanceledOnTouchOutside(true);
或使用此功能,如果点击了dialog.setCanceledOnTouchOutside(false);
答案 1 :(得分:3)
使用dialog.setCanceledOnTouchOutside(false)
会阻止对话框仅在用户点击框外时隐藏,但如果他点击Android设备上的“后退”按钮则不会隐藏;
使用dialog.setCancelable(false)
会阻止两者。
答案 2 :(得分:0)
此示例代码工作正常,
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.activity_test);
dialog.setTitle("Title...");
dialog.setCanceledOnTouchOutside(false);
dialog.show();