1

我有一个应用程序,它有 2 个计时器,从他们的按钮点击开始。

当他们开始时,计时器倒计时显示在文本视图中,因此用户可以看到倒计时的秒数(10、9、8、7 等)

一个计数器是 45 秒计时器,另一个是 30 秒计时器。我注意到,当计时器启动时,它们会采取以下两种方式之一,要么计时器倒计时显示从正确的秒开始(然后跳过一个)45、43、42、41 等),要么不显示其他时间起始值并直接跳转到(44、43、42、41 等)并且不跳过任何内容。

最终,我希望这些计时器能够合理地显示初始值和倒计时。即始终先显示 45,然后显示 44、43、42、41 等。

关于为什么这可能会或可能不会这样做的任何想法?我在课堂上使用 android CountDownTimer。

更新:这是我的 CountDownTimer 代码

    public CountDown (long millisInFuture, long countDownInterval, Button button ) {
    super(millisInFuture, countDownInterval);
    this.button = button;
}


//Timer Countdown
@Override
public void onTick(long millisUntilFinished) {
    long timeRemaining = (millisUntilFinished/1000);
    button.setText((millisUntilFinished/1000)+"");
4

1 回答 1

0

我试图复制这个问题,但不能。也许发布您的代码?

这是我的简单测试,它首先显示 45,然后依次倒数,最后为零。

    Button b = (Button) findViewById(R.id.button1);
    final TextView tv = (TextView) findViewById(R.id.tv_1);

    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new CountDownTimer(45 * 1000, 1000) {
                int x = 45;

                @Override
                public void onTick(long millisUntilFinished) {
                    tv.setText(Integer.toString(x));
                    x--;

                }

                @Override
                public void onFinish() {
                    tv.setText("0");

                }
            }.start();

        }
    });
于 2013-02-25T03:10:36.937 回答