从倒数计时器返回值 [英] Returning value from countdown timer
本文介绍了从倒数计时器返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要从我的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屋!
查看全文