从postDelayed方法显示toast的倒计时?

时间:2013-12-02 13:47:11

标签: java android handler countdown postdelayed

使用这种方法我可以在我想要的动作中设置延迟:

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
    //Do something after 5 seconds
  }
}, 5000);

有没有办法在吐司中显示这5秒的倒计时?感谢

2 个答案:

答案 0 :(得分:3)

如果你的意思是他们堆积起来导致延迟,那么你应该在显示一个新的吐司之前取消之前的吐司。

如果你想要一些更有趣的东西,你可以尝试使用PopupWindow来显示倒计时,那么你有更多的布局等自由。

http://developer.android.com/reference/android/widget/PopupWindow.html

这是其他人的答案:https://stackoverflow.com/a/15174370/2767703


示例:

Toast toast = Toast.makeText(this, "10", Toast.LENGTH_SHORT);
toast.show();
new CountDownTimer(10000, 1000) {  
        public void onTick(long m) {  
           long sec = m/1000+1;  
           toast.cancel();
           toast.setText("" + sec);
           toast.show();
        }  
        public void onFinish() {  
           // Finished  
        }  
    }.start();

答案 1 :(得分:1)

是,请执行以下操作

new CountDownTimer(30000,1000){

public void onTick(long millisUntilFinished) {
  Log.i("seconds remaining: " ,""+ millisUntilFinished / 1000);
}

public void onFinish() {
     Log.i("Timer Finished");
}

}开始();