2012-05-04 13 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(); 

DELAYED_REPONSEミリ秒後にダイアログを閉じますことRunnable新を投稿するには、次のコードを使用します。このコードが想定する

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

注意をActivityにはdismissDialog()というメソッドが実装されているため、それに応じてダイアログが閉じられます。

2

UIスレッドのルーパにHandlerを作成し、を実行するMessageまたはRunnableを投稿することをお勧めします。

0

あなたは、デバイスのボタンを押すことができBACKこれを行うことにより、セットsetCancelable(true)を使用することができます。 例:

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

自分のコードでdismissを呼び出したい。何もクリックしないで。 – brian

+0

特定の要件を満たしていれば?それは解雇されますか? –

関連する問題