1

我想创建dialog临时时间(说几秒钟后应该自动取消)。

我用这段代码创建对话框:

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

我用这个结束对话:dl.cancel();

但是什么时候写这个?(例如,我在完成对话 5 sn 之后。)

4

3 回答 3

6

你为什么不使用HandlerpostDelayed

像这样,

    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,也可以自定义 Toast。

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

此指令将在屏幕上显示一条消息,持续 2 秒。要了解有关 toast 的更多信息,请参阅:http: //developer.android.com/guide/topics/ui/notifiers/toasts.html

但是,如果您仍然坚持使用 Dialog,请在此对话框上设置一个计时器,并在超时时关闭该对话框。

于 2012-04-14T05:05:16.463 回答