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

上記のコードは私のものです。
ボタンをクリックするとダイアログを閉じることができます。
しかし、ボタンをクリックせずにそれを却下したい場合。
どうすればいいですか?

4

3 に答える 3

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

于 2012-05-04T02:35:35.993 に答える
2

それを行う最良の方法はHandler、UIスレッドルーパー上にを作成してから、遅延MessageまたはRunnable実行するを投稿することDialog.dismiss()です。

于 2012-05-04T02:12:11.660 に答える
0

setCancelable(true)これにより、デバイスの戻るボタンを押すことができます。例:

AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setCancelable(true).show();
于 2012-05-04T02:14:31.510 に答える