Một trong những vấn đề của tôi là thay đổi định dạng của chronometer trong android. tôi có vấn đề mà chronometer cho thấy thời gian của nó trong định dạng 00:00 và tôi muốn nó đến trong định dạng 00:00:00.does ai biết câu trả lời?cách thay đổi định dạng của công tơ mét?
Trả lời
Tôi đang làm việc trên đồng hồ đếm ngược đã sử dụng định dạng này nhưng nó dành cho HH: MM: SS. Đó là những gì bạn đang tìm kiếm hoặc bạn đang tìm kiếm MM: SS: mili giây. Bạn có thể làm việc với mã này và làm cho nó đếm từ 0 thay vì xuống. Dưới đây là liên kết - Formatting countdown timer with 00:00:00 not working. Displays 00:00:00 until paused then displays the time remaining và điều này có thể giúp đỡ - Show milliseconds with Android Chronometer
hồ thời gian chính thức setFormat được sử dụng để thêm văn bản formated như:
"Thời gian% s từ đầu"
kết quả
"Thời gian 00:00 từ đầu"
Trong Chronometer bạn không thể chọn giữa các định dạng HH: MM: SS hoặc MM: SS.
Vì vậy, điều này có nghĩa là không có cách nào bạn có thể đặt định dạng kết quả cuối cùng là "00:00:00" mà không thực hiện một số thao tác trong 'ChronometerTickListener' như các câu trả lời khác được đề xuất. phải không? –
Tôi đã xử lý cùng một vấn đề. Cách đơn giản nhất để đạt được mục tiêu này sẽ được trọng UPDATETEXT phương pháp của Chronometer, nhưng tiếc là nó là một phương pháp riêng vì vậy tôi đã làm điều này theo cách này:
mChronometer.setText("00:00:00");
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
CharSequence text = chronometer.getText();
if (text.length() == 5) {
chronometer.setText("00:"+text);
} else if (text.length() == 7) {
chronometer.setText("0"+text);
}
}
});
Tôi biết rằng nó sẽ là tốt hơn để viết tùy tùng nhưng đối với dự án nhỏ, nó có thể phù hợp.
Định dạng cài đặt trên công tơ mét cho phép định dạng văn bản xung quanh thời gian thực tế và thời gian được định dạng bằng cách sử dụng DateUtils.formatElapsedTime.
Hy vọng điều đó sẽ hữu ích.
Dưới đây là một giải pháp dễ dàng và thông minh cho định dạng thời gian 0:00:00 trong chronometer trong android
Chronometer timeElapsed = (Chronometer) findViewById(R.id.chronomete);
timeElapsed.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer cArg) {
long time = SystemClock.elapsedRealtime() - cArg.getBase();
int h = (int)(time /3600000);
int m = (int)(time - h*3600000)/60000;
int s= (int)(time - h*3600000- m*60000)/1000 ;
String hh = h < 10 ? "0"+h: h+"";
String mm = m < 10 ? "0"+m: m+"";
String ss = s < 10 ? "0"+s: s+"";
cArg.setText(hh+":"+mm+":"+ss);
}
});
timeElapsed.setBase(SystemClock.elapsedRealtime());
timeElapsed.start();
Dude, giải pháp thực sự tốt đẹp. Cách dễ nhất mà tôi từng thấy;) –
cảm ơn ý tưởng của bạn, tôi đã chỉnh sửa mã của bạn một chút để cải thiện hiệu suất tại đây \t cArg.setText (String.format ("% 02d:% 02d:% 02d", h, m , s)); –
trong đó có cách nào để làm điều này nếu chronometer là trong một widget (widget màn hình)? – ArJ
You can use this code. Setting the format and removing it
//Removing the format (write this in oncreate)
if(mChronometerformat){
mSessionTimeChro.setOnChronometerTickListener(new OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if (chronometer.getText().toString()
.equals("00:59:59"))
chronometer.setFormat(null);
}
});}
// Setting the format
mSessionTimeChro.setBase(SystemClock.elapsedRealtime());
if (diffHours == 0) {
mSessionTimeChro.setFormat("00:%s");
mChronometerformat = true;
}
mSessionTimeChro.start();
Tại sao chỉ không sử dụng ngày lớp ??
timeElapsed.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer cArg) {
long time = SystemClock.elapsedRealtime() - cArg.getBase();
Date date = new Date(time);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateFormatted = formatter.format(date);
cArg.setText(dateFormatted);
}
});
đơn giản và sạch sẽ
Lớp Chronometer kỳ vọng một mẫu cụ thể trong phương thức setText (String) của nó. Mã của bạn sẽ làm tăng Ngoại lệ. –
@FranziskusKarsunke Bạn đã kiểm tra mẫu này chưa? ** Theo mặc định, nó sẽ hiển thị giá trị bộ đếm thời gian hiện tại dưới dạng "MM: SS" hoặc "H: MM: SS" hoặc bạn có thể sử dụng setFormat (String) để định dạng giá trị bộ hẹn giờ thành chuỗi tùy ý. ** – Marurban
Điều này làm việc, nhưng nó là hiệu quả hơn để làm việc với thời gian như là một thời gian dài hơn là instantiating một đối tượng Date và DateFormat mới mỗi giây. – k2col
- 1. Các kết quả khác nhau tính trung bình của các biến kép có trong một vec tơ của các cấu trúc bằng cách thay đổi định dạng mã?
- 2. Thay đổi định dạng của created_at trong Rails 3.1?
- 3. Thay đổi định dạng thụt lề vim
- 4. Mongoose Thay đổi Định dạng Sơ đồ
- 5. cách thay đổi vị trí định dạng phụ
- 6. Cách thay đổi định dạng tệp nhật ký lỗi MySQL
- 7. Cách định dạng/thay đổi đầu ra xây dựng qmake
- 8. thay đổi định dạng ngày MySql
- 9. Cách thay đổi Định dạng của Ô thành Văn bản bằng cách sử dụng VBA
- 10. Làm cách nào để thay đổi định dạng thông báo tường trình mặc định trong công cụ ứng dụng python?
- 11. Thay đổi định dạng in nổi mặc định
- 12. R thay đổi định dạng tỷ lệ trên trục y
- 13. Perforce: Giữ Perforce thay đổi định dạng tệp văn bản
- 14. Chuyển đổi khóa công khai ở định dạng SubjectPublicKeyInfo thành định dạng RSAPublicKey java
- 15. Làm cách nào để thay đổi định dạng văn bản của một ô Excel bằng C#?
- 16. Công cụ định dạng Python
- 17. Android: Thay đổi định dạng thời gian theo định dạng thời gian hiện tại của Thiết bị
- 18. Thay đổi định dạng ngày ngắn trong Ubuntu
- 19. Visual Studio thay đổi ngày & giờ định dạng
- 20. Thay đổi kể từ ngày và định dạng giờ để định dạng số
- 21. OpenCV - Chuyển đổi vectơ của véc tơ thành Mat
- 22. Tấn công chuỗi định dạng
- 23. Thay đổi định dạng ngày tháng trong R
- 24. Thay đổi định dạng ngày tháng trong chuỗi android
- 25. Thay đổi định dạng ngày giờ trên trục mschart
- 26. Làm thế nào để thay đổi định dạng của một cột của bảng excel trong C#?
- 27. Thay đổi xác định dạng ngày, MVC 3 và jQuery
- 28. Thay đổi định dạng ngày thành "% d /% m /% Y"
- 29. SQLDeveloper thay đổi trường hợp (phá vỡ định dạng)
- 30. Thay đổi Drupal 7 Được gửi theo định dạng
im looking for HH: MM: SS ......... BT chronometer không hiển thị nó khi nó là chỉ trong vài giây hoặc vài phút là 00:00: 00 định dạng.nó chỉ hiển thị 00:00 khi đếm ngược diễn ra trong giây lát. hoặc phút – Nikki