这是我开始计时器的方式:
btnCount.setEnabled(true);
if (!mIsStarted) {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
mIsStarted = true;
}
然后我停下来:
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(getApplicationContext(),"Count Reset",Toast.LENGTH_LONG).show();
txtCount.setText(String.valueOf(count = 0));
chrono.setBase(SystemClock.elapsedRealtime());
return true;
default:
return super.onOptionsItemSelected(item);
我已经尝试了所有我知道的东西,但是按下重置菜单按钮后按钮点击时无法重新启动计时器,而是保持在00.我明白这很可能是因为
if (!mIsStarted) {
...
mIsStarted = true;
允许按钮仅与计时器交互一次。有没有办法让按钮在重置后启动计时器?感谢
答案 0 :(得分:0)
因为我设置了boolean mIsStarted = false;最初只允许第一个按钮点击启动计时器后通过菜单按钮重置布尔值仍然有效,不会让我以同样的方式重新启动计时器:
if (!mIsStarted) {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
mIsStarted = true;}
我添加了mIsStarted = false;到我的菜单按钮操作,所有工作都按预期工作:
txtCount.setText(String.valueOf(count = 0));
chrono.setBase(SystemClock.elapsedRealtime());
chrono.stop();
mIsStarted = false;
我通过按钮单击启动计时器然后停止并通过菜单按钮重置为00:00并通过相同的按钮单击重新启动相同的过程。