Проверьте, работает ли Хронометр
хронометр в android Как проверить, работает ли хронометр или останавливается? если начать, то я хочу остановить его, а если не работает, то запустить хронометр.
4 ответов
вы можете проверить это, используя логическую переменную.при запуске Хронометра установить булевой переменной true и когда он остановит вас набор булевой переменной значение false.
boolean isChronometerRunning = false;
if (true) // condition on which you check whether it's start or stop
{
chronometer.start();
isChronometerRunning = true;
}
else
{
chronometer.stop();
isChronometerRunning = false;
}
вы можете extend
Chronomter
, например:
import android.content.Context;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.widget.Chronometer;
public class MyChronometer extends Chronometer {
private boolean isRunning = false;
public MyChronometer(Context context) {
super(context);
}
public MyChronometer(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyChronometer(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void start() {
super.start();
isRunning = true;
}
@Override
public void stop() {
super.stop();
isRunning = false;
}
public boolean isRunning() {
return isRunning;
}
}
а потом просто позвоните isRunning()
.
Это и странно, что он не выставляет это имущество. Я действительно не вижу идеального способа проверить это, кроме отслеживания самостоятельно.
вы могли бы просто взять исходный код для этого класса реализуйте его в своем проекте самостоятельно и добавьте такой метод:
public boolean getStarted() {
return mStarted;
}
private boolean isChronometerRunning = false;
private Chronometer chronometer;
chronometer = (Chronometer) findViewById(R.id.chronometer);
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
isChronometerRunning = true;
теперь, когда вы хотите остановить хронометр, используйте приведенный ниже код для проверки Хронометра.
if (isChronometerRunning){
chronometer_call.stop();
}