2012-05-04 34 views
4
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(); 

上面的代碼是我的。
我可以點擊按鈕關閉對話框。
但是,如果我想解僱它,而不點擊任何按鈕。
我該怎麼做?如何關閉AlertDialog.Builder而無需點擊任何按鈕

+0

AlertDialog.Builder似乎沒有cancel()和dismiss()函數。 – brian

+0

但是對話框的ID是什麼? – brian

+0

你應該閱讀[Dialogs](http://developer.android.com/guide/topics/ui/dialogs.html),看看創建,顯示,刪除和解除對話的不同方式。 – yorkw

回答

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

使用下面的代碼來發布新RunnableDELAYED_REPONSE毫秒會解僱你的對話:

handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     dismissDialog(); 
    } 
}, DELAYED_RESPONSE); 

請注意,此代碼假定您的Activity實施方法dismissDialog()將相應地解除您的對話。

2

最好的辦法是在你的UI線程looper上創建一個Handler,然後發佈執行Dialog.dismiss()的延遲MessageRunnable

0

您可以使用set setCancelable(true)這樣做,您可以按設備的BACK按鈕。 例子:

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

我想對我的代碼打電話解僱。不點擊任何東西。 – brian

+0

如果符合某些要求?它會被解僱? –

相關問題