Я новичок в программировании на Android, но я знаю Java. Мой вопрос: как работает таймер в Android? Я читал, что лучше использовать обработчик. Я хочу сделать это, вы нажмете кнопку и начнется таймер. К моменту нажатия кнопки все понятно для меня, но как запустить таймер?
Как работает таймер в Android?
Вам лучше прочитать документацию по таймеру, документацию CountDownTimer и документацию обработчика .
На данный момент, когда кнопка нажата, все очищается для меня; Но как я могу запустить таймер?
Если бы я не понял ваш вопрос, когда вы говорите « Timer
, вы обращаетесь к CounteDownTimer
. Итак, у вас должно быть что-то вроде этого:
(Я написал пример кода. Итак, сначала вы должны это понять, а затем, вы должны применить его к своему коду.)
Добавление Buttons
btn1 = (Button)findViewById(R.id.bt1); btn2 = (Button)findViewById(R.id.bt2);
Добавление SetOnClickListener()
btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { }); } btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { }); }
Мой btn1
запускает CountDownTimer
, а второй останавливается и очищает его.
Теперь я создаю внутренний класс с именем CountDownTimerTest
.
public class CountDownTimerTest extends CountDownTimer { public CountDownTimerTest(long startTime, long interval) { super(startTime, interval); } @Override public void onFinish() { text.setText("Time's up!"); timeElapsedView.setText("Time Elapsed: " + String.valueOf(startTime)); } @Override public void onTick(long millisUntilFinished) { text.setText("Time remain:" + millisUntilFinished); timeElapsed = startTime - millisUntilFinished; timeElapsedView.setText("Time Elapsed: " + String.valueOf(timeElapsed)); } }
Затем на моем btn1
я помещаю этот код (запустите CountDownTimer
):
countDownTimer.start();
И на моем btn2
я помещаю этот код (остановите / отмените CountDownTimer
):
countDownTimer.cancel();
Теперь я надеюсь, что вы поймете, как работает CountDownTimer
, если ваш вопрос не о CountDownTimer
, дайте мне знать, и я CountDownTimer
свой ответ как можно скорее с вашими пожеланиями.
Button
Чтобы сделать это с помощью той же Button
, вы можете сделать это:
Создайте Boolean
переменную как:
Boolean ButtonClicked = false;
Затем измените код следующим образом:
btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (!ButtonClicked)) { ButtonClicked = true; countDownTimer.start(); } else { ButtonClicked = false; countDownTimer.cancel(); } }); }
Вы можете создать int
именем NumberButtonClicked
следующим образом:
int NumberButtonClicked = 0;
Затем на каждой Button
вы должны будете сделать это (пример):
btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { NumberButtonClicked = 1; }); }
Тогда вы знаете, что если вы нажмете btn1
ваша переменная будет равна 1.