0

I'm trying to build application which get time from timepicker dialog and store time in sharedpreferences and retrieve those value from sharedpreferences to store into other variable testhour and testminutes. I'm trying to store values when user tap on Set Button of timePicker Dialog.

public class MainActivity extends AppCompatActivity {
    public Button setTime;
    public int testhour=14;
    public int testminute=25;
    public String hourx,minutex;

    public static final String MY_PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTime = (Button) findViewById(R.id.button);


        setTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar mcurrentTime = Calendar.getInstance();
                final int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                int minute = mcurrentTime.get(Calendar.MINUTE);
                TimePickerDialog mTimePicker;

                mTimePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
                        editor.putString("hours", String.valueOf(selectedHour));
                        editor.putString("minute", String.valueOf(selectedMinute));
                        editor.apply();

                    }

                }, hour, minute, true);
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();
                mTimePicker.setButton(DialogInterface.BUTTON_POSITIVE, "Set", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (which == DialogInterface.BUTTON_POSITIVE)
                        {
        SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
        hourx = prefs.getString("hours", null);//"No name defined" is the default value.
        minutex = prefs.getString("minute", null);
        testhour = Integer.parseInt(hourx);
        testminute = Integer.parseInt(minutex);
        Toast.makeText(MainActivity.this, "Time Has Been Set for "+ testhour + ": "+testminute, Toast.LENGTH_SHORT).show();
                        }
                    }
                });
            }
        });

But it's not working.. it's not storing values in testhours and testminute when I tap on set Button of timePicker dialog.

Khizar Murad
  • 621
  • 2
  • 7
  • 15
  • 1
    use `.commit()` instead of `.apply()` for the `editor` method. See [commit vs apply](https://stackoverflow.com/questions/5960678/whats-the-difference-between-commit-and-apply-in-shared-preference) question that was asked previously. – t0mm13b Jun 10 '17 at 11:15
  • save works fine problem when retrieving data – Khizar Murad Jun 10 '17 at 11:58

0 Answers0