我如何仅为(例如)5sn创建对话框?

时间:2012-04-14 05:01:33

标签: android android-dialog

我希望暂时dialog({em>说几秒后它会自动取消)。

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

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

我完成了对话:dl.cancel();

但写这个的时候? (例如,我完成了对话框5 sn之后。)

3 个答案:

答案 0 :(得分:6)

为什么不使用HandlerpostDelayed

像这样,

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

        @Override
        public void run() {
            dl.cancel();
        }
    }, 5000);

答案 1 :(得分: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();

更多详情请转到This Link

答案 2 :(得分:1)

您可以为此目的使用Toast,也可以自定义吐司。

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

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

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