2016-04-26 25 views
0

設定画面で時間ピッカーのダイアログが表示されます。ユーザーが時間をクリックすると、ピッカーのダイアログが表示され、ユーザーは時間を選択します。しかし、ユーザーが時間ピッカーを再びクリックすると、時間ピッカーのダイアログには選択された時間の代わりに現在の時間が表示されます。 これまで私が行ってきたことがあります。ピッカーダイアログの時間を選択した時間に設定します

mreminder.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Calendar mcurrentTime = Calendar.getInstance(); 
      final int[] hour = {mcurrentTime.get(Calendar.HOUR_OF_DAY)}; 
      int minute = mcurrentTime.get(Calendar.MINUTE); 
      TimePickerDialog mTimePicker; 
      mTimePicker = new TimePickerDialog(SettingsActivity.this, new TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { 
        int hour = selectedHour; 
        int minutes = selectedMinute; 
        String timeSet = " "; 
        if (hour > 12) { 
         hour -= 12; 
         timeSet = "PM"; 
        } else if (hour == 0) { 
         hour += 12; 
         timeSet = "AM"; 
        } else if (hour == 12) 
         timeSet = "PM"; 
        else 
         timeSet = "AM"; 

        String min = ""; 
        if (minutes < 10) 
         min = "0" + minutes; 
        else 
         min = String.valueOf(minutes); 

        // Append in a StringBuilder 
        String aTime = new StringBuilder().append(hour).append(':') 
          .append(min).append(" ").append(timeSet).toString(); 
        mreminder.setText(aTime); 
        pref.savePref(REMINDER, aTime); 
       } 
      }, hour[0], minute, false); 
      mTimePicker.setTitle("Select Time"); 
      mTimePicker.show(); 

     } 
    }); 

誰かが、私は次回のユーザーがそれをクリックする選択した時間にtimepickerを設定する方法を教えてもらえます。

+1

[Android:時間のピッカーを設定した時間をテキストビューで表示](http://stackoverflow.com/questions/12494074/android-setting-time-in-time-picker-with-the) -time-in-text-view) –

+0

[TimePickerでカスタム時間を設定する方法](http://stackoverflow.com/questions/31376072/how-to-set-custom-time-in-timepicker ) –

+0

私はそれを得ることができません。私のコードに関して教えてください。 –

答えて

0

sharedPreferencesに選択した時刻を格納し、onClickイベントにsharedPreferenceに何かがあるかどうかをチェックします。

int hours,mins;//global variables;  
mreminder.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     int h = Integer.parseInt(sharedPreference.getString("HOUR","0)); 
     int m = Integer.parseInt(sharedPreference.getString("MIN","0"));//"0" is the default value if nothing is stored; 
     if(h>0){ 
       hours = h; 
       mins = m; 
     }else{ 
      Calendar mcurrentTime = Calendar.getInstance(); 
     hours = mcurrentTime.get(Calendar.HOUR_OF_DAY); 
     mins = mcurrentTime.get(Calendar.MINUTE); 
     } 

     TimePickerDialog mTimePicker; 
     mTimePicker = new TimePickerDialog(SettingsActivity.this, new TimePickerDialog.OnTimeSetListener() { 
      @Override 
      public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { 
       int hour = selectedHour; 
       int minutes = selectedMinute; 
       String timeSet = " "; 
       if (hour > 12) { 
        hour -= 12; 
        timeSet = "PM"; 
       } else if (hour == 0) { 
        hour += 12; 
        timeSet = "AM"; 
       } else if (hour == 12) 
        timeSet = "PM"; 
       else 
        timeSet = "AM"; 

       String min = ""; 
       if (minutes < 10) 
        min = "0" + minutes; 
       else 
        min = String.valueOf(minutes); 

       // Append in a StringBuilder 
       String aTime = new StringBuilder().append(hour).append(':') 
         .append(min).append(" ").append(timeSet).toString(); 
       mreminder.setText(aTime); 
       pref.savePref(REMINDER, aTime); 
      } 
     }, hours, mins, false); 
     mTimePicker.setTitle("Select Time"); 
     mTimePicker.show(); 

    } 
}); 

これはあなたの問題を解決します:それは何かを持っている場合は、このような何かを行うことができ そこからそのデータをロードします。

+0

それは私のために働いていない。 –

+0

私はあなたを助けることができるようにsharedprefrencesのためのコードを提供してください – Ashwani

+0

私は覚え書きに環境設定を保存しています。上記のコードで –

関連する問題