2017-05-05 8 views
0

私は多くの人々が重複した質問と呼ぶだろうと知っていますが、私は最初にそれを読むことをお勧めします。ユーザーが 'em'のいずれかを選択した後、timePickerウィジェットにAMとPMを保存する方法は?

私はXMLでtimePickerウィジェットを持っていると私はそれにOnTimeChangedListener設定しました。ユーザー入力(時間と分を選択)を取得し、sharedPreferencesで保存していますが、うまくいきますが、PMを選択してもtimePickerは常にAMと表示されます。だから私はどのようにユーザーが午前または午後を選択して取得する方法を知って、私は時間と分を保存したようにそれを保存する必要がありますか?

timePickerウィジェットのXML:

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

のJavaコード:

// 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)); 
     } 
    } 

私がtrueにsetIs24Hourを試みたし、それがうまく働いていたが、私は自分の時間ピッカーのウィジェットの外観を好きではなかったです私はそれを望んでいません。 OnTimeChangedListenerにあなたは0〜23を取得する必要がありますので

答えて

0

AndroidのTimePickerは、内部的に24時間対応です。同様に、setHour()に12〜23の値を指定すると、時間ピッカーにPMが表示されます。私はちょうど私の携帯電話でそれをテストし、すべてが期待どおりに動作しています。

+0

ここでは機能しません!あなたのコードを提供できますか? –

+0

アクティビティは次のとおりです:https://pastebin.com/rycyAYzX レイアウトはちょうど 'TimePicker'要素です。 –

関連する問題