这是我启动计时器的方式:
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;
允许按钮仅与计时码表互动一次。有没有办法让按钮在重置后启动计时器?谢谢
因为我将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,并通过单击同一按钮重新开始相同的过程。