我构建了一个小应用程序,你写了几秒,然后有一个计时器。当计时器变为0时,它会播放音乐。
不幸的是Runnable
在一个减法后停止(我的意思是在我写完5并按下按钮后,5减去4然后停止。)
我无法在Runnable
之外写onClick
,因为我需要它只在用户点击START按钮后运行。
我怎样才能做到这一点?
这是我的代码:
public void onClick(View v) {
// btnPlant.setEnabled(false);
handler = new Handler();
while(count >0) {
final Runnable r = new Runnable() {
public void run() {
count = Integer.parseInt(etInput.getText().toString());
count--;
timer.setText(Integer.toString(count));
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
}
}
答案 0 :(得分:1)
我通过移动线
解决了这个问题 count = Integer.parseInt(etInput.getText().toString());
在Runnable之外,因为问题是我总是将编辑文本的值传递给count,而不会改变,如5。 之后我从5中减去1,所以它的4和打印。 再次发送它的值为5,它变为4,一次又一次......所以:
public void onClick(View v) {
// btnPlant.setEnabled(false);
handler = new Handler();
count = Integer.parseInt(etInput.getText().toString());
Runnable r = new Runnable() {
public void run() {
count--;
timer.setText(Integer.toString(count));
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
}