J'ai un problème affichant le AM / PM correct d'un cycle de sommeil calculé d'une personne. Par exemple, l'utilisateur clique sur son heure d'éveil à 07h00, l'application doit retourner l'heure de sommeil à 23h15. Dans mon application, il affiche 11h15 pas PM.Timepicker incorrect retour de AM/PM android
Pouvez-vous me aider avec ce que je l'ai essayé jusqu'à présent:
private TimePickerDialog.OnTimeSetListener timePickerListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour,
int selectedMinute) {
// Gets current time
Calendar c = Calendar.getInstance();
hour = selectedHour;
minute = selectedMinute;
// set waking time into textview
StringBuilder sb = new StringBuilder();
if(hour>=12){
sb.append(hour-12).append(":").append(minute).append(" PM");
}else{
sb.append(hour).append(":").append(minute).append(" AM");
}
wakingtime.setText(sb);
// Assign hour set in the picker
c.set(Calendar.HOUR, selectedHour);
c.set(Calendar.MINUTE, selectedMinute);
// Have Calendar calculate the substraction of hours and minutes
c.add(Calendar.HOUR, SUB_HOUR);
c.add(Calendar.MINUTE, SUB_MINUTE);
// Get the hour and the minute calculated
hour = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
StringBuilder sb2 = new StringBuilder();
if(hour>=12){
sb2.append(hour-12).append(":").append(minute).append(" PM");
}else{
sb2.append(hour).append(":").append(minute).append(" AM");
}
answer.setText(sb2);
// set current time into textview
//answer.setText("You must go to bed at " + new StringBuilder().append(pad(hour))
// .append(":").append(pad(minute)));
}
};
Toute aide est vraiment apprécié! Merci.
Mettez un point d'arrêt sur cette ligne si (heure> = 12), exécutez votre code jusqu'à ce que vous atteigniez le point d'arrêt. Quelle valeur est l'heure? – Simon
@Simon, [les docs] (http://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener.html) disent que c'est le "hourOfDay". Donc, cela doit être au format 24 heures. – varevarao
Bon point, alors allez-y et répondez. hour = c.set (calendrier.HOUR_OF_DAY); – Simon