我有以下AlertDialog:

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext);
dialogBuilder.setTitle(R.string.title);
dialogBuilder.setMessage(mContext.getString(R.string.message));
dialogBuilder.setPositiveButton(R.string.positive, new MyOnClickListener());
dialogBuilder.setNegativeButton(R.string.negative, new MyOnClickListener());
dialogBuilder.show();

与此ClickListener
public static class MyOnClickListener implements DialogInterface.OnClickListener{
    @Override
    public void onClick(DialogInterface dialog, int which) {
      dialog.dismiss();
    }
  }

我希望当单击两个按钮中的任何一个时,该对话框都将关闭,但该对话框保持打开状态。

我调试了onClick方法和该行
dialog.dismiss()

正在执行,但没有任何 react 。

我在哪里出错或如何解决这个问题?

最佳答案

在顶部声明您的AlertDialog,例如:

private AlertDialog myAlertdialog;
然后将您的dialogBuilder.show();替换为
myAlertDialog = dialogBuilder.create();
myAlertDialog.show();
那么你可以调用myAlertDialog.dismiss();

10-08 07:08