При использовании TimeDialog, чтобы получить время и установить его в EditText, я обнаружил, что, если 'минут' меньше 0, например: 12:05, это дает 12: 5. Здесь, в этом коде, я решил эту проблему, а также правильно использовал TimeDialog для получения AM / PM, если вы хотите 12-часовой формат. Замените ваш onTimeSet () следующим
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
String period;
int hour = 0;
String minute;
if(selectedMinute >= 0 && selectedMinute < 10)
minute = "0" + selectedMinute;
else
minute = String.valueOf(selectedMinute);
if(selectedHour >= 0 && selectedHour < 12)
period = "AM";
else
period = "PM";
if(period.equals("AM")){
if(selectedHour == 0)
hour = 12;
else if(selectedHour >= 1 && selectedHour < 12)
hour = selectedHour;
}else if(period.equals("PM")){
if(selectedHour == 12)
hour = 12;
else if(selectedHour >= 13 && selectedHour <= 23)
hour = selectedHour - 12;
}
String time = hour+":"+minute+" "+period;
currentText.setText(time);
}
}, hour, minute, false);