Montrer TimePicker avec format 12 ou 24 heures dans android
J'ai un problème avec mon TimePickerDialog.
d'abord détecter si l'appareil de l'utilisateur a l'heure en format 12 ou 24 heures:
…
String format;
…
if (DateFormat.is24HourFormat(this)) {
Log.i("control","Format 24");
format=("24");
} else {
Log.i("control","Format 12");
format=("12");
}
…
Maintenant, mon intention est de montrer le TimePicker avec l'option de l'am ou pm selon le format:
…
if(format.equals("24"){
view.setIs24HourView(true);
} else {
view.setIs24HourView(true);
} …
C'est le code complet TimePickerDialog:
public class AlarmPreferencesActivity extends ListActivity
…
TimePickerDialog timePickerDialog = new TimePickerDialogs(this, new TimePickerDialog.OnTimeSetListener(){
@Override
public void onTimeSet(TimePicker view, int hours, int minutes) {
Calendar newAlarmTime = Calendar.getInstance();
newAlarmTime.set(Calendar.HOUR_OF_DAY, hours);
newAlarmTime.set(Calendar.MINUTE, minutes);
newAlarmTime.set(Calendar.SECOND, 0);
alarm.setAlarmTime(newAlarmTime);
alarmPreferenceListAdapter
.setMathAlarm(getMathAlarm());
alarmPreferenceListAdapter
.notifyDataSetChanged();
}},
alarm.getAlarmTime().get(Calendar.HOUR_OF_DAY),
alarm.getAlarmTime().get(Calendar.MINUTE), true);
timePickerDialog.setCancelable(true);
timePickerDialog.setCustomTitle(getLayoutInflater().inflate(R.layout.custom_hours, null));
timePickerDialog.show();
}
Mon problème est que je ne sais pas où inscrire les view.setIs24HourView (true)
ou (false)
.
J'ai essayé beaucoup de variations, mais rien ne fonctionne.
J'ai cherché de l'information, mais sans succès.
- avez-vous lu la documentation de la TimePickerDialog constructeur vous utilisez?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez avoir un format 24 h dans votre TimePickerDialog vous avez besoin pour passer la valeur correcte pour le constructeur de TimePickerDialog. Vous pouvez consulter la documentation de cette classe ici. Vous pouvez voir que les deux constructeurs acceptent
boolean is24HourView
drapeau avec qui nous de décider si nous voulons que notre dialogue dans les 24 heures de format ou pas. Si vous voulez que votre application temps à se comporter de la même manière que votre système, vous pouvez obtenir les paramètres système pour format 24 h avec cette ligne:DateFormat.is24HourFormat(context)
de sorte que vous pouvez passer cette valeur à votre constructeur.f vous souhaitez le TimePicker être correctement initialisé à l'heure actuelle, au format 24h, utilisez la commande suivante:
Sinon, en raison de Android bug, le sélecteur de commencer avec une mauvaise heure (2 au lieu de 14, etc).
espérons que cela aide