我需要从我的倒数计时器返回值,以便我可以更新 textView。我不确定我该怎么做,我添加了一条评论,我曾尝试添加返回但没有成功。
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.
没有必要这样做。它在 ui 线程上运行。您可以在 onTick
本身中更新 textview。
例子:
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();
}
}
关于java - 从倒数计时器返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540684/