如何关闭AlertDialog.Builder而不单击任何按钮

时间:2012-05-04 02:05:39

标签: android alertdialog

AlertDialog.Builder dialog = new AlertDialog.Builder(this);
ListDialog.setPositiveButton(R.string.str_choose, new YesListener());
ListDialog.setNegativeButton(R.string.str_cancel, new NoListener());
dialog.show();

以上代码是我的。
我可以点击按钮关闭对话框 但如果我想在没有点击任何按钮的情况下解雇它 我该怎么做?

3 个答案:

答案 0 :(得分:4)

使用处理程序将呼叫延迟到Dialog.dismiss()。这是一个例子。

Activity中定义适当的实例变量:

// number of milliseconds to wait (2 seconds, in this example).
public static final int DELAYED_RESPONSE = 2000;
// define a handler as a private instance variable in your Activity.
private Handler handler = new Handler();

使用以下代码发布新的Runnable,该DELAYED_REPONSE会在handler.postDelayed(new Runnable() { @Override public void run() { dismissDialog(); } }, DELAYED_RESPONSE); 毫秒后解除您的对话:

Activity

请注意,此代码假定您的dismissDialog()实施的方法{{1}}会相应地关闭您的对话框。

答案 1 :(得分:2)

最好的方法是在您的UI线程looper上创建Handler,然后发布执行Message的延迟RunnableDialog.dismiss()

答案 2 :(得分:0)

您可以使用设置setCancelable(true)这样做,您可以按设备的BACK按钮。 例如:

AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setCancelable(true).show();