从倒数计时器返回值 [英] Returning value from countdown timer

查看:183
本文介绍了从倒数计时器返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从我的countdowntimer返回值,所以我可以更新一个TextView。我不知道我怎么能做到这一点,我已经添加在那里我已经尝试添加一回,但没有运气的注释。

 公共类BrewTimer延伸活动{        公共字符串secsRemain =未设置;        @覆盖
        保护无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);            的System.out.println(定时器产生,我们在onCreate方法。);
        }        公共无效startBrewTimer(长remaningMillis){
            //开始酿造定时器
            的System.out.println(Timer对象被解雇了!);            新CountDownTimer(remaningMillis,1000){                公共无效onTick(长millisUntilFinished){
                    secsRemain =剩余时间+ millisUntilFinished / 1000;
                    的System.out.println(secsRemain);                    返回secsRemain; //< - 这是我想做的事
                }                公共无效onFinish(){
                    的System.out.println(定时器完成!!!);
                }
            }。开始();
        }        公共无效stopBrewTimer(){
            //停止酿造定时器
        }        }


解决方案

  

我需要从我的countdowntimer返回值,所以我可以更新
  TextView的。


有没有必要做。它运行在UI线程上。您可以在 onTick 更新的TextView本身。

例如:

 公共类MainActivity延伸活动{
TextView的电视;
  公共字符串secsRemain =未设置;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);
    电视=(的TextView)findViewById(R.id.textView1);
    startBrewTimer(200000);
}
私人无效startBrewTimer(长remaningMillis){
    CountDownTimer计数器= CountDownTimer(remaningMillis,1000){
        公共无效onTick(长millisUntilDone){
        secsRemain =剩余时间+ millisUntilFinished / 1000;
          tv.setText(secsRemain);
        }        公共无效onFinish(){
            tv.setText(DONE!);        }
    }。开始();
}
 }

I need to return the value from my countdowntimer so I can update a textView. I'm not sure how I can do this, I've added a comment where I've tried adding a return but no luck.

public class BrewTimer extends Activity{

        public String secsRemain = "not set";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            System.out.println("Timer Created, we're in the onCreate Method.");
        }

        public void startBrewTimer(long remaningMillis) {
            // Start the Brew Timer
            System.out.println("Timer object fired!");

            new CountDownTimer(remaningMillis, 1000) {

                public void onTick(long millisUntilFinished) {
                    secsRemain = "seconds remaining: " + millisUntilFinished / 1000;
                    System.out.println(secsRemain);

                    return secsRemain; // <-- This is what I want to do
                }

                public void onFinish() {
                    System.out.println("Timer Finished!!!");
                }
            }.start();
        }

        public void stopBrewTimer() {
            //Stop the Brew Timer
        }

        }

解决方案

I need to return the value from my countdowntimer so I can update a textView.

There is no need to do that. It runs on the ui thread. You can update textview in onTick itself.

Example:

public class MainActivity extends Activity { 
TextView tv;
  public String secsRemain = "not set";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv = (TextView) findViewById(R.id.textView1);
    startBrewTimer(200000);     
}
private void startBrewTimer(long remaningMillis){
    CountDownTimer counter = CountDownTimer(remaningMillis, 1000){
        public void onTick(long millisUntilDone){
        secsRemain = "seconds remaining: " + millisUntilFinished / 1000; 
          tv.setText(secsRemain);                    
        }

        public void onFinish() {
            tv.setText("DONE!");

        }
    }.start();
}
 }

这篇关于从倒数计时器返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆