Я создал TimePicker в макете, и я хочу, чтобы он показывал время с форматом 24h.
Вы можете мне помочь? Спасибо.
Я создал TimePicker в макете, и я хочу, чтобы он показывал время с форматом 24h.
Вы можете мне помочь? Спасибо.
TimePicker
- это представление для выбора времени суток в режиме 24 часа или AM/PM.
Вы можете использовать setIs24HourView(true)
метод TimePicker.
Настройка TimePicker
по умолчанию на 24-часовой режим не всегда является хорошей идеей, так как многие страны имеют разные соглашения. Для этого случая используйте DateFormat.is24HourFormat(getActivity())
.
Ваш последний код migth выглядит как picker.setIs24HourView(DateFormat.is24HourFormat(this));
.
Дополнительная информация:
Если вы хотите, чтобы TimePicker был правильно инициализирован текущим временем в формате 24h, используйте следующее:
import java.util.Calendar;
timePicker.setIs24HourView(true);
timePicker.setCurrentHour(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
В противном случае из-за ошибки Android сборщик начнет с неправильного часа (2 вместо 14 и т.д.).
Вам просто нужно извлечь экземпляр TimePicker из представления после его раздувания, затем вы можете изменить виджет.
Идентификаторы произвольны:
View v=getActivity().getLayoutInflater().inflate(R.layout.dialog_time, null);
TimePicker timePicker=(TimePicker)v.findViewById(R.id.dialog_time_timePicker);
timePicker.setIs24HourView(true);
По умолчанию оно отображает время в формате AM/PM. Если вы хотите изменить время в 24-часовом формате, вы можете использовать метод setIs24HourView(). См. Эту ссылку: http://www.androidaspect.com/2012/06/timepicker-view-tutorial.html
XML
<TimePicker
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/timePicker" />
Java
TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
Мне нужно то же самое, что и приложение, чтобы установить трафик продолжительности для выполнения задачи. Я обнаружил, что мне просто нужно расширить класс TimePickerDialog и передать True в последнем параметре конструктора boolean is24HourView.
public class DurationPickerDialog extends TimePickerDialog {
public DurationPickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute){
super(context, callBack, hourOfDay, minute, true);
}
Тогда вам нужно только создать это как
TimePickerDialog durationPicker = new DurationPickerDialog(getActivity(), this, hour, minute);
durationPicker.setTitle("Duration:");
Вам просто нужно позвонить и отправить true в функцию setIs24HourView.
TimePicker tpHourMin = (TimePicker) findViewById(R.id.timePicker);
tpHourMin.setIs24HourView(true);
Как уже отмечалось, некоторые люди задают параметр true или false.
timePicker.setIs24HourView (истина);
Вы можете найти полный пример с исходным кодом для загрузки отсюда http://www.ahotbrew.com/android-timepicker-example/
Или вы позволяете пользователю решать для себя, какой формат он хочет использовать.
В вашей основной деятельности:
DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView outputText= (TextView)findViewById(R.id.outputText);
outputText.setText(hourOfDay + " : "+ minute);
}
И в новом классе Java (TimePickerFragment):
public class TimePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(),(TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, android.text.format.DateFormat.is24HourFormat(getActivity()));
}}