2017-05-05 11 views
0

많은 사람들이 중복 된 질문이라고 부르지 만 처음에는 그것을 읽으라고 제안합니다.사용자가 'em'중 하나를 선택한 후에 timePicker 위젯에 AM 및 PM을 저장하는 방법은 무엇입니까?

저는 XML로 timePicker 위젯을 가지고 있는데, OnTimeChangedListener를 설정했습니다. 사용자 입력 (시간과 분을 선택)을 받고 sharedPreferences를 사용하여 저장하고 있는데, 잘 작동하지만 PM을 선택해도 timePicker는 항상 오전을 표시합니다. 그래서 나는 AM 또는 PM을 선택한 사용자를 얻는 방법을 알고 시간과 분을 절약 한 것처럼 저장해야합니까?

timePicker 위젯 XML :

<TimePicker 
    android:id="@+id/time_picker" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

자바 코드 : 나는 참으로 setIs24Hour을 시도하고 그것이 잘 작동했지만, 난 내 시간 선택 도구의 위젯의 모양을 좋아하지 않았다

// IMPLEMENTATION OF TIME PICKER'S TIME CHANGE EVENT 
     timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { 
      @Override 
      public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 
       savedHour = hourOfDay; 
       savedMinute = minute; 

      } 
     }); 



// IMPLEMENTATION OF SAVE BUTTON 
     save.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Boolean isNotification = notificationSwitch.isChecked(); 
       editor.putBoolean("isNotification", isNotification); 
       editor.putInt("saved_hour", savedHour); 
       editor.putInt("saved_minute", savedMinute); 
       editor.putBoolean("hasTimeSaved", true); 
       editor.apply(); 
       finish(); 
      } 
     }); 

// CHECK WHETHER TIME HAS BEEN SAVED BY THE USER OR NOT 
if (preferences.getBoolean("hasTimeSaved", false)) { 
     if (Build.VERSION.SDK_INT >= 23) { 
      timePicker.setHour(preferences.getInt("saved_hour", 11)); 
      timePicker.setMinute(preferences.getInt("saved_minute", 11)); 
     }else { 
      timePicker.setCurrentHour(preferences.getInt("saved_hour", 11)); 
      timePicker.setCurrentMinute(preferences.getInt("saved_minute", 11)); 
     } 
    } 

, 나는 그것을 원하지 않는다.

답변

0

안드로이드의 TimePicker은 내부적으로 24 시간이므로 OnTimeChangedListener에는 0 ~ 23이되어야합니다. 마찬가지로 setHour()에 12에서 23 사이의 값을 지정하면 시간 선택기에 PM이 표시됩니다. 난 그냥 내 휴대 전화에서 그것을 테스트하고 모든 것이 예상대로 작동합니다.

+0

여기에서 작동하지 않습니다! 코드를 제공 할 수 있습니까? –

+0

활동은 다음과 같습니다. https://pastebin.com/rycyAYzX 레이아웃은 단지 'TimePicker'요소입니다. –