我正在尝试制作一个简单的倒计时器来显示 toast 的剩余时间。
我写了这段代码:
new CountDownTimer(10000, 1000) {
public void onTick(long timeRemaining) {
Toast.makeText(getBaseContext(), "" + timeRemaining / 1000,
Toast.LENGTH_SHORT).show();
}
public void onFinish() {
// do something
}
}.start();
问题是,当我在 toast 中显示“3”时,就会执行 onFinish 方法中的操作。
因此,尊重定时器, toast 速度较慢。
我该如何解决这个问题?
最佳答案
Toast 不应该这样使用。 Toast.LENGTH_SHORT 会在消失前停留 3 秒,但计时器每秒都会滴答一声,所以显然 Toast 很慢。
如果你想向用户显示计时器,那么你必须使用TextView,如果你想要自己的计时器,那么你可以使用Log.d();
更新:- 经过一番搜索后,我发现您无法为自定义时间设置 Toast。 Toast 只有两个值 Toast.LENGTH_LONG 和 Toast.LENGTH_SHORT。在这里查看这个问题Can an Android Toast be longer than Toast.LENGTH_LONG? 。作为解决方法,如果您确实想将 Toast 设置为 1 秒,那么您可以这样做
final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);
关于java - Android 中的 Toast 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936772/