1 回答

TA貢獻1830條經驗 獲得超9個贊
如果您在 if 條件中放置一個日志,您會在 00:05 之后在 logcat 中看到該日志。我通過從計時器上移除監聽器來防止它。
chrono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if(chronometer.getText().toString().equalsIgnoreCase("00:05")) {
// Reset Chronometer
chronometer.setOnChronometerTickListener(null);
chronometer.stop();
chronometer.setBase(SystemClock.elapsedRealtime());
}
}
});
但是如果你需要這個監聽器,你可以從Chronometer.OnChronometerTickListener實現你的片段并實現 OnChronometerTickListener ,如下所示:
public class MainActivity extends AppCompatActivity implements Chronometer.OnChronometerTickListener {
private String TAG = "MainActivity";
Button start;
Chronometer chronometer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chronometer = findViewById(R.id.chron);
start = findViewById(R.id.btn);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chronometer.start();
}
});
chronometer.start();
chronometer.setOnChronometerTickListener(this);
}
@Override
public void onChronometerTick(Chronometer chronometer) {
if (chronometer.getText().toString().equalsIgnoreCase("00:05")) {
// Reset Chronometer
chronometer.setOnChronometerTickListener(null);
chronometer.stop();
Log.d(TAG, "onChronometerTick: stop");
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.setOnChronometerTickListener(this);
}
}
}
添加回答
舉報