2013-11-15 2 views
2

내 TimePickerDialog에 문제가 있습니다.android에서 12 또는 24 시간 형식의 TimePicker 표시

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

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

이제 내 의도는 형식에 따라 오전 또는 오후의 옵션을 사용하여 TimePicker를 보여주는 것입니다 : 사용자의 장치가 12 또는 24 시간 형식으로 시간을 경우 첫 검출

이는 전체 코드 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 시간 형식으로 현재 시간을 초기화 할 원하는 f를 다음 사용으로 인해 안드로이드 버그, 그렇지 않으면

import java.util.Calendar; 

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

을, 피커는 잘못된 시간 (2로 시작하는 대신합니다 14 등). 이 도움이 되었기를 바랍니다.

+0

제 질문은 그게 아니지만, 당신의 관심에 감사드립니다. 내가 알고 자하는 것은 사용자의 장치에 따라 12 시간 또는 24 시간 형식으로 timepicker (TimePicker보기, int hours 등)를 넣는 방법입니다. 내 timepicker가 "public void onTimeSet (TimePicker view ...) 내에서 선언되었습니다. 예 : view.setIs24HourView (true); – Sergio76

+0

사용자의 장치에서 시간 지정 기본값을 의미합니까?이 DateFormat.is24HourFormat (context) –

+0

이것은 사실입니다. Android에 버그가 있습니다. https://code.google.com/p/android/issues/detail?id=18982이 부분을 참조하십시오. –

관련 문제