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();
以上代码是我的。
我可以点击按钮关闭对话框
但如果我想在没有点击任何按钮的情况下解雇它
我该怎么做?
答案 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
的延迟Runnable
或Dialog.dismiss()
。
答案 2 :(得分:0)
您可以使用设置setCancelable(true)
这样做,您可以按设备的BACK按钮。
例如:
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setCancelable(true).show();