1

dialog一時的に作成したい(数秒後に言うと自動的にキャンセルされます)。

私はこのコードでダイアログを作成します:

Dialog    dl=new Dialog(myclass.this);
            dl.setTitle("HELLE WORLD");
            dl.setCanceledOnTouchOutside(true);
            dl.show(); 

そして、私はこれでダイアログを終了します:dl.cancel();

しかし、これを書くときは?(たとえば、ダイアログを5秒後に終了します。)

4

3 に答える 3

6

なぜあなたは使わないHandlerのですかpostDelayed

このような、

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            dl.cancel();
        }
    }, 5000);
于 2012-04-14T05:10:30.813 に答える
3

通常どおりダイアログを作成し、たとえば 5 秒のカウントダウン タイマーを開始します。これは、カウントダウン タイマーがonFinish使用中に期限切れにdialog.dismiss() なり、一定時間後に停止するためです。

このような、

    new CountDownTimer(30000, 1000) {
        public void onTick(long millisUntilFinished) {
            mTextField.setText("seconds remaining: " + millisUntilFinished
                    / 1000);
        }

        public void onFinish() {
            mTextField.setText("done!");
        }
    }.start();

詳細については、このリンクに移動します

于 2012-04-14T05:09:06.207 に答える
1

この目的でトーストを使用できます。トーストをカスタマイズすることもできます。

Toast.makeText(this, "Hello toast", 2000);

この指示により、画面に2秒間メッセージが表示されます。トーストの詳細については、http: //developer.android.com/guide/topics/ui/notifiers/toasts.htmlを参照してください。

ただし、それでもDialogの使用を主張する場合は、このダイアログにタイマーを設定し、タイムアウト時にダイアログを閉じます。

于 2012-04-14T05:05:16.463 に答える