Я хочу отображать таймер в TextView в формате [19:59] .so, когда я нажимаю кнопку запуска, таймер будет отображаться, например, таким образом, я хочу установить до 20 минут, он будет отображаться как [19:58] [19:87]. Любой может дать некоторые идеи или примерный код? Как показать таймер в android
ответ
Вы можете использовать CountDownTimer
.
http://developer.android.com/reference/android/os/CountDownTimer.html
TextView _tv = (TextView) findViewById(R.id.textView1);
new CountDownTimer(20*60000, 1000) {
public void onTick(long millisUntilFinished) {
_tv.setText("seconds remaining: " +new SimpleDateFormat("mm:ss:SS").format(new Date(millisUntilFinished)));
}
public void onFinish() {
_tv.setText("done!");
}
}.start();
Для отмены просто позвоните отменить таймер.
public final void cancel()
Отменить обратный отсчет.
Можно ли использовать таймер подсчета? то есть начиная с 0 и доходит до бесконечности – faizal
Почему это 20 * 60000 –
@RuchirBaronia первый аргумент длится миллисекунды для тестирования, я использовал это. Вы можете изменить его на все, что вы считаете нужным – Raghunandan
package com.example.testproject;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity {
public int seconds = 60;
public int minutes = 10;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Declare the timer
Timer t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = (TextView) findViewById(R.id.main_timer_text);
tv.setText(String.valueOf(minutes)+":"+String.valueOf(seconds));
seconds -= 1;
if(seconds == 0)
{
tv.setText(String.valueOf(minutes)+":"+String.valueOf(seconds));
seconds=60;
minutes=minutes-1;
}
}
});
}
}, 0, 1000);
}
}
это код, который я попробовал, и я получил ответ своей собственной логикой. – rajeshlawrance
небольшая ошибка: вторая - = 1 должна быть после if (секунды == 0) {...}, иначе вторая секунда вашего таймера покажет 0 после 2 – Daryn
//start button click
CountDown timer = new CountDown(180000, 1000);
timer.start();
//stop button click
timer.stop();
//countdown class
public class CountDown extends CountDownTimer {
public CountDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
long ms = millisUntilFinished;
String text = String.format("%02d\' %02d\"",
TimeUnit.MILLISECONDS.toMinutes(ms) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(ms)),
TimeUnit.MILLISECONDS.toSeconds(ms) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(ms)));
textViewTimer.setText(text);
}
@Override
public void onFinish() {
textViewTimer.setText("ffinish");
}
}
Это может быть сделано с помощью cronometer, самая главная причина, поддерживает API 1+, что весьма впечатляет, а не TextClock, который поддерживает API 17+.
Вы можете сделать много других вещей с помощью кронометра. , например вы можете установить время запуска в нем
chronometer.setBase (SystemClock.elapsedRealtime());
Вы также можете узнать об этом больше here.
Здесь я использовать класс Timer для отображения таймера
public class FourthActivity extends AppCompatActivity {
Button startButton, pauseButton;
TextView timerValue;
Timer timer;
int seconds = 0, minutes = 0, hour = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fourth);
bindView();
timer = new Timer();
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (seconds == 60) {
timerValue.setText(String.format("%02d", hour) + ":" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds));
minutes = seconds/60;
seconds = seconds % 60;
hour = minutes/60;
}
seconds += 1;
timerValue.setText(String.format("%02d", hour) + ":" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds));
}
});
}
}, 0, 1000);
}
});
}
private void bindView() {
timerValue = (TextView) findViewById(R.id.timerValue);
startButton = (Button) findViewById(R.id.startButton);
}
}
В макете есть одна TextView и одна кнопка для запуска таймера. У меня есть метод класса Timer scheduleAtFixedRate
. Время будет отображаться в форме hh: mm: ss.
- 1. Как показать таймер в действии в Android
- 2. Показать таймер в приложении?
- 3. Показать таймер для полного приложения для Android.
- 4. Показать таймер в Java-фрейме
- 5. Показать таймер GLUT
- 6. Как показать таймер обратного отсчета в Cocos2d?
- 7. Как показать таймер в игре Cocos2d?
- 8. Как остановить таймер Android
- 9. Как закрыть таймер в Android?
- 10. Как установить таймер в android
- 11. Как остановить таймер в android
- 12. Как использовать таймер в Android?
- 13. Как приостановить таймер в Android?
- 14. Как установить таймер в Android?
- 15. Как использовать таймер android
- 16. Android: как использовать таймер
- 17. Таймер уведомлений Android
- 18. Показать таймер активности
- 19. таймер обратного отсчета в android
- 20. Таймер в android?
- 21. таймер в тосте android
- 22. Перепланирующий таймер в android
- 23. Таймер в Android Studio
- 24. как показать таймер в возрастающем виде в виде андроида текста
- 25. Таймер в Android-сервисе
- 26. таймер обратного отсчета в android
- 27. Таймер Android в сервисе
- 28. Таймер в Android
- 29. Сбросить таймер в android
- 30. Таймер обратного отсчета android
Вы пробовали что-нибудь ?? – Krrishnaaaa
Можете ли вы показать нам, что у вас есть? –
большинство примеров звезд со стартовым временем, например 1,2,3 секунды uptp 60 секунд. Мне нужен обратный порядок – rajeshlawrance