Я новичок в Android, в моем приложении у меня есть таймпикер, мне нужно программно установить часы, минуты, значения AM / PM.
Значение времени - «11: 11: AM». Здесь я установил час и время, и оно работает нормально. Но я не знаю, как установить значения AM / PM.
код:
if (!(mTime == null)) {
String timme = mTime;
String[] time = timme.split(":");
int hour = Integer.parseInt(time[0].trim());
int min = Integer.parseInt(time[1].trim());
String amPm = ((time[2].trim()));
mTimePicker.setIs24HourView(false);
mTimePicker.setHour(hour);
mTimePicker.setMinute(min);
}
Изображение:
Он всегда показывает «AM», даже если в строке есть «PM». Может ли кто-нибудь помочь мне это исправить.
позвони так,
mTimePicker.setIs24HourView(false);
@ Чжу, ты можешь показать свой экран?
Я обновил изображение, и оно всегда показывает AM, даже если в строке есть PM @GobuCSG
Эй, чувак, просто пропусти 24-часовой формат, получится 12-часовой формат, вот и все.
Android автоматически устанавливает AM / PM в зависимости от времени в 24-часовом формате. Чтобы уточнить:
Вы должны установить TimePicker в 12-часовой режим, позвонив
yourtimepicker.setIs24HourView(false)
а затем укажите время в 24-часовом формате, используя
yourtimepicker.setHour(22)
Если бы я был на вашем месте, я бы разделил строку и проверил, была ли последняя часть AM или PM, а если это PM, я бы добавил 12 часов к значению, так что, если бы это был 11:11:PM, я бы получил 23 часа, передал бы его Android и позвольте ему заботиться обо всем остальном.
ПРИМЕЧАНИЕ: это работает как в режиме счетчика, так и в режиме часов.
String = aTime - это строка в формате 24 hour.
mTimePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
String timeSet;
if (selectedHour > 12) {
selectedHour -= 12;
timeSet = "PM";
} else if (selectedHour == 0) {
selectedHour += 12;
timeSet = "AM";
} else if (selectedHour == 12)
timeSet = "PM";
else
timeSet = "AM";
String minutes = "";
if (selectedMinute < 10)
minutes = "0" + selectedMinute;
else
minutes = String.valueOf(selectedMinute);
String aTime = new StringBuilder().append(selectedHour).append(':')
.append(minutes).append(" ").append(timeSet).toString();
relatedWorkTime.setText(aTime);
}
}, hour, minute, false);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
Используйте приведенный ниже код, чтобы добавить преобразование из 24-часового формата в 12-часовой формат и добавить AM / PM.
String time = ((hourOfDay > 12) ? hourOfDay % 12 : hourOfDay) + ":" + (minute < 10 ? ("0" + minute) : minute) + " " + ((hourOfDay >= 12) ? "PM" : "AM");
Ниже приведен полный код программы android timepicker.
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(CreateNewBatchActivity.this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
String time = ((hourOfDay > 12) ? hourOfDay % 12 : hourOfDay) + ":" + (minute < 10 ? ("0" + minute) : minute) + " " + ((hourOfDay >= 12) ? "PM" : "AM");
buttonBatchStartTime.setText(time);
}
}, mHour, mMinute, false);
timePickerDialog.show();
Это может быть полезно: stackoverflow.com/questions/11381985/…