【问题标题】:How to show Timer's remaining time in all activities?如何在所有活动中显示 Timer 的剩余时间?
【发布时间】:2013-10-01 15:52:17
【问题描述】:

我想创建一个 CountDownTimer,将其剩余时间传递给所有活动,并将其显示在 TextViews 中。我尝试使用intent.putExtra,但是当我开始新的活动时,计时器重新启动。

这是我需要的:

-ActivityA 以 60 秒计时器开始,因此其 TextView 显示 59...58...57...等...

-ActivityB 在 6 秒后启动,因此它的 TextView 显示 54...53...52...等...

倒计时只需从第一个活动持续到最后一个活动。

希望我已经足够清楚了。 感谢您的解决方案,并对我的意大利语英语感到抱歉。

【问题讨论】:

    标签: java android countdowntimer


    【解决方案1】:

    使用静态变量(也许为“更好”的代码创建一个新类)。

    public static int time;
    

    或者你可以在你的ActivityA中声明它,向下计数变量并在ActivityB中使用它

    textView.setText("" + ActivityA.time);
    

    编辑:

    public class MyTimer {
        private static int time = 60;
    
        public MyTimer() {
            if(time >= 60) {
                countDown();  //let countDown only run once
            }
        }
    
        private void countDown() {
             //insert a thread here, which counts your time down
        }
    
        public int getTime() {
            return this.time;
        }
    
    }
    

    然后,在你的活动中:

    MyTimer mTimer = new MyTimer();
    textview.setText(mTimer.getTime() + "");
    

    【讨论】:

    • 那么我可以用Timer创建一个独立的Class并且只在所有Activity中设置TextViews吗?
    • 是的,这是最好的主意!在其中创建一个独立类:存储静态变量(因此每个活动中的值都相同),倒数并从您的活动中调用变量值。
    • 当我启动我的应用时 textView = time:null
    • 我编辑了我的anser,你所要做的就是自己实现线程。
    • 我创建的倒计时效果很好,但是当我从 ActivityA 启动 ActivityB 时,textView 显示:“android.widget.TextView@4051bde8”而不是剩余时间
    猜你喜欢
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多