如果我要一次取消选中所有复选框,如何同时在所有复选框上设置计时器?如果我取消选中“checkbox1”并为该复选框设置一个计时器,取消选中“checkbox2”不会覆盖该计时器吗?
- 我有 3 个复选框和 1 个文本视图,
- 处于选中状态的所有复选框。
- 我想在其中任何一个未选中时创建一个计时器。
- 我希望每个复选框都有一个独立的计时器
例如,当未选中“checkbox1”时,我希望创建一个持续 5 分钟的计时器,当它只剩下 1 分钟时,我希望它把 textview 的文本更改为“你还有 1 分钟”作为提醒计时器即将结束。
public void onCheckedChanged(final CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (!buttonView.isChecked()) {
new CountDownTimer(300000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
if (millisUntilFinished < 60000) {
map.get(buttonView).setText("1 min left!");
} else if (millisUntilFinished < 30000) {
map.get(buttonView).setText("30 sec left!");
} else {
map.get(buttonView).setText(millisUntilFinished/60000 + ":" + (millisUntilFinished%60000)/1000);
}
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
map.get(buttonView).setText("Spawned!");
}
}.start();
} else if (buttonView.isChecked()) {
// cancel the timer basically
}
}
与我最初想做的不同,我为每个复选框创建了一个文本视图,因此不会让用户感到困惑。我创建了一个包含(复选框,TextView)的地图。取消选中复选框时如何取消计时器?我做一个数组列表吗?如果是这样,我会在哪里将计时器添加到数组列表中?