我有一个实现一些按钮和计数器的类,当我按下按钮时,我需要将 TextView 中的一些文本设置为其他内容。这不是什么疯狂的事情,这就是为什么我不明白为什么它不起作用。
有效的按钮 onClick 方法:
public class Main extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linLayout = (LinearLayout)findViewById(R.id.main_view);
Button button_2 = new Button(this);
button_2.setText("2");
button_2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
setValues(2, 2);
((TextView)findViewById(R.id.counter_label)).setText("You Pressed 2");
updateScrollText();
startTimer(200000);
}
}
linLayout.addView(button_2);
}
public void setValues(int first, int second);
this.first = first;
this.second = second;
}
...
但是当我尝试将它放在我的计时器中时:
private void startTimer(long time){
counter = new CountDownTimer(time, 1000){
public void onTick(long millisUntilDone){
Log.d("counter_label", "Counter text should be changed");
((TextView)findViewById(R.id.counter_label)).setText("You have " + millisUntilDone + "ms");
}
public void onFinish() {
((TextView)findViewById(R.id.counter_label)).setText("DONE!");
}
}.start();
}
令人沮丧的部分是,LogCat 在每个滴答声上都显示“应更改计数器文本”,但实际上并没有更改文本。有什么线索吗?我已经清理了项目,其他一切正常。
我还刚刚注意到另一个正在做类似事情的计数器计时器(向我显示完成之前的时间)正在 100% 工作,我还没有碰过它,现在它也没有设置文本。它在 1 秒后停止更改文本,但计数器继续倒计时。