2013-11-15 5 views
2

У меня проблема с моим TimePickerDialog. первым обнаружить, если устройство пользователя имеет время в 12 или 24-часовом формате:Показать TimePicker с 12 или 24-часовым форматом в android

… 
String format; 
… 
if (DateFormat.is24HourFormat(this)) { 
Log.i("control","Format 24"); 
format=("24"); 
} else { 
Log.i("control","Format 12"); 
format=("12"); 
} 
… 

Теперь мое намерение состоит в том, чтобы показать TimePicker с возможностью утра или вечера, в зависимости от формата:

… 
if(format.equals("24"){ 
view.setIs24HourView(true); 
} else { 
view.setIs24HourView(true); 
} … 

Это полный код 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(); 
     } 

Моя проблема, я не знаю, где включить view.setIs24HourView (true) или (false). Я пробовал много вариантов, но ничего не работает. Я искал информацию, но безуспешно.

+0

Вы прочитали документацию для конструктора TimePickerDialog, который используете? – njzk2

ответ

6

е вы хотите TimePicker быть правильно инициализируется с текущим временем в 24-часовом формате с помощью следующей:

import java.util.Calendar; 

timePicker.setIs24HourView(true); 
timePicker.setCurrentHour(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)); 

В противном случае, из-за Android ошибки, сборщик начнет с некорректным час (2 вместо 14 и т. Д.). надеюсь, что это поможет

+0

мой вопрос не в том, но я ценю ваш интерес. Что я пытаюсь понять, так это то, как установить timepicker (представление TimePicker, часы работы и т. Д.) В 12 или 24-часовом формате, в зависимости от устройства пользователя. My timepicker объявлен в пределах «public void onTimeSet (вид TimePicker ...) Пример: view.setIs24HourView (true); – Sergio76

+0

Вы имеете в виду формат времени по умолчанию на пользовательском устройстве? Попробуйте этот DateFormat.is24HourFormat (контекст) –

+0

Это правда , Android имеет ошибку, https://code.google.com/p/android/issues/detail?id=18982 ссылается на это. –