2

我在这里的简单代码显示了 Android 中的对话框。当用户在对话框外单击或对话框失去焦点时,我不想隐藏对话框。我该怎么做?

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();

谢谢。

4

3 回答 3

5

如果在外面单击,则使用它来隐藏 dialog.setCanceledOnTouchOutside(true);

或者如果点击外侧,则使用它不隐藏dialog.setCanceledOnTouchOutside(false);

于 2012-12-29T14:37:03.087 回答
3

使用dialog.setCanceledOnTouchOutside(false)将阻止对话框隐藏,但如果他单击 Android 设备上的“后退”按钮则不会;

使用dialog.setCancelable(false)将防止两者。

于 2013-05-03T14:10:39.727 回答
0

此示例代码运行良好,

final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.activity_test);
        dialog.setTitle("Title...");
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
于 2012-12-29T15:56:58.737 回答