TimePickerDialog et AM ou PM
J'ai un TimePickerDialog avec is24Hour défini à false car je tiens à présenter à l'utilisateur final le plus familier en format 12 heures. Lorsque l'heure, les minutes et AM PM indicateur sont définies et l'heure est retourné comment puis-je déterminer si l'utilisateur a sélectionné AM ou PM?
C'est ce que j'ai pour l'auditeur:
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
mHour = hourOfDay;
mMinute = minute;
//mIsAM = WHERE CAN I GET THIS VALUE
}
};
Vous devez vous connecter pour publier un commentaire.
La
hourOfDay
sera toujours de 24 heures. Si vous avez ouvert la boîte de dialogue avecis24HourView
ensemble defalse
, l'utilisateur n'aura pas à traiter avec 24 heures de formaté fois, mais Android va convertir un 24-heures de temps lors de l'appel àonTimeSet()
.hourOfDay
est de 12 ou plus, l'indicateur AM/PM seront PM. Bien sûr, cela n'a rien à voir avec Android, et tout à voir avec la connaissance, 12 heures et de 24 heures de temps de conventions de travail.Cela a fonctionné pour moi:
hourOfDay
etminute
paramètres de la fonction ci-dessus.J'ai été en cours d'exécution dans le même problème. J'ai un TimePicker dans mon application, où, après vous choisissez une heure et appuyer sur un bouton, vous serez redirigé vers un écran qui montrait à quel moment a été choisi. Le "temps" choisi était correct, mais parfois la valeur AM/PM serait à l'opposé de ce qui a été choisie. J'ai finalement résolu en changeant ce que j'ai été de les entreposer pour le "h" de l'argument de la TimePicker.
Maintenant quand j'appuie sur le bouton pour passer à l'écran suivant correctement a montré le bon AM/PM de la valeur choisie.
Salut vous pouvez utiliser votre propre format comme ceci :
J'ai trouvé que "a" est le code de formatage de temps que représente AM-PM: http://www.tutorialspoint.com/java/java_date_time.htm
un joli pain grillé message avec ce que l'utilisateur a sélectionné prouvant que le format HH:MM
Essayer cette méthode simple:
Essayez ceci :
Si votre idée était de régler directement AM/PM de l'Heure Sélecteur de la boîte de Dialogue, il y a un travail autour de. Cela fonctionne si vous pré-remplir le EditText avec courant/temps par défaut.
- Avant l'instanciation de la boîte de dialogue, l'augmentation des heures par les 12 si EditText a PM de la valeur temps.
sref_Time3 est ampm valeur; sref_Time1 est l'heure de la composante.
Merci & Regards.
Cela fonctionne pour moi :
Vous pouvez essayer ma solution, j'ai utilisé "hh:mm" format pour définir heure AM/PM:
Je sais que c'est trop tard pour la réponse, et la réponse appropriée est déjà sélectionnée, Mais j'ai pensé qu'il n'est pas assez clair pour les débutants, donc de poster ma réponse
Essayez ceci, j'Espère qu'elle va vous aider à
Tout en utilisant le TimeDialog pour obtenir l'heure et la placer à un EditText, j'ai trouvé que si les "minutes" sont à moins de 0, ex: 12:05, il en donnant comme 12:5. Ici, dans ce code, j'ai résolu ce problème et aussi correctement à l'aide de TimeDialog pour obtenir AM/PM si vous voulez en format 12 heures. Remplacer le votre onTimeSet() avec les éléments suivants
Cette approche utilise la formule actuelle de la fonctionnalité et de la décision entre am/pm et 24h format est basé sur si le
timePickerDialog
a été ouvert avec 24 heures de soutien ou pas. Kotlin exemple.BR Matthias