Jak ustawić format Chronometr na Androida na GG: MM: SS?Format chronometru Android
Odpowiedz
Pierwsza propozycja - w lewo tylko dla historii
Chronometer c;
...
c.setFormat("HH:MM:SS");
Edit - To nie działa w ogóle! Przepraszam za zbyt szybko, niesprawdzonych odpowiedź ... Oto coś, co działa:
Chronometer c;
...
c.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer cArg) {
long t = SystemClock.elapsedRealtime() - cArg.getBase();
cArg.setText(DateFormat.format("kk:mm:ss", t));
}
});
Dodaje przesunięcie czasowe do sformatowanego czasu, jak mogę go uniknąć? – dgngulcan
Wydaje ludzi, którzy napisali wcześniejsze odpowiedzi nawet nie próbować tego, co zaproponował. Po prostu nie działa tak, jak opisali.
Aby uzyskać bardziej odpowiednie odpowiedzi, patrz how to change format of chronometer?.
Dzięki! I masz rację, odpowiedź nie została przetestowana. Ciekawe, że został zaakceptowany ... –
Po kilku testach wymyśliłem ten kod. To nie jest w pełni przetestowany, ale można podać mi więcej informacji, jeśli
private void formatChronometerText(Chronometer c) {
int cTextSize = c.getText().length();
if (cTextSize == 5) {
breakingTime.setFormat("00:%s");
} else if (cTextSize == 7) {
breakingTime.setFormat("0%s");
} else if (cTextSize == 8) {
breakingTime.setFormat("%s");
}
}
nazwałem tę metodę w onCreate()
metody np.
Chronometer c = ...
...
formatChronometerText(c);
c.setText("00:00:00");
Będę z powrotem w ciągu dnia, aby sprawdzić, czy działa lub musi zostać wywołany również po zmianie rozmiaru tekstu. Jeżeli jesteś precautious osoba I sugerują, że nazywają go w tym samym kontekście z c.start()
i c.stop()
if(ticking){
c.stop();
formatChronometerText(c);
} else {
formatChronometerText(c);
c.start()
}
to działa:
Chronometer chronometer;
chronometer.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer c) {
int cTextSize = c.getText().length();
if (cTextSize == 5) {
chronometer.setText("00:"+c.getText().toString());
} else if (cTextSize == 7) {
chronometer.setText("0"+c.getText().toString());
}
}
});
znaleźć lepsze rozwiązanie bez alokacji pamięci dla ciągu każdej sekundy :
c.setFormat("00:%s");
c.setOnChronometerTickListener(new OnChronometerTickListener() {
public void onChronometerTick(Chronometer c) {
long elapsedMillis = SystemClock.elapsedRealtime() -c.getBase();
if(elapsedMillis > 3600000L){
c.setFormat("0%s");
}else{
c.setFormat("00:%s");
}
}
});
- 1. jak zmienić format chronometru?
- 2. Domyślnie Android Okno Format
- 3. Android: Format EXDATE podczas dodawania zdarzenia kalendarza
- 4. Android Studio 3.0 Format wymiaru smaków
- 5. Android Format daty ze strefą czasową
- 6. Format pakietu BLE w systemie Android
- 7. Android 4.3 jelly Bean Format czasu wydania
- 8. Android: format ciągu z wartością podwójną
- 9. String.Format (format, data) ignoruje format
- 10. jak przekonwertować milisekundy na format daty w systemie Android?
- 11. Błąd 1 libavcodec.so Format pliku nierozpoznany Android GL Live Wallpaper
- 12. Format niestandardowego atrybutu "atrybut odwołania" w systemie Android?
- 13. git pre-commit format kodu haseł - Intellij1/Android Studio
- 14. Konwersja Androida na format zwykły
- 15. Format DropDownList.TextValue
- 16. _NT_SYMBOL_PATH format
- 17. PNPDeviceID Format
- 18. Format pliku .png z Androidem NinePatch?
- 19. Format ciąg datetime do czasu tylko
- 20. jaki jest format tych danych? czy to jest niestandardowy format?
- 21. Format daty zepsuty w .net 4.0 dla uk format
- 22. Format waluty do wyświetlenia
- 23. Format pliku core-dump
- 24. zerem Data Format C#
- 25. format string w C
- 26. Native iPhone format audio
- 27. ITL (biblioteka iTunes) Format
- 28. Format czasu statystyki UNIX
- 29. Format niesformatowanego Fortranu
- 30. Aptana auto format
możliwe duplikat [jak zmienić format chronometr?] (http://stackoverflow.com/questions/4152569/how-to-change-format-of-chronometer) –