Custom Datepicker As Preference Does Not Keep Value When User Edits Value In Field
Solution 1:
Since this class extends the DialogPreference
class, it already handles changing the SharedPreference
using the buttons. To correctly update your date variable after the user types the new date, you need to update the SharedPreference
manually.
You can do this as follows:
SharedPreferencesprefs= PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editorpreferences= prefs.edit();
preferences.putLong("mdate_key", mDate.getTime());
preferences.commit();
Here, mdate_key will correspond to the DatePickerPreference
key used in the PreferenceActivity
XML file.
I recommend either doing this in onDateChanged()
or onDestroy()
.
Solution 2:
Please take a look at the DatePreference library:
http://mikeburnscoder.wordpress.com/2010/09/27/datepreference-an-android-library/https://github.com/bostonandroid/DatePreference
This should solve your problem.
Solution 3:
I had the same issue. The solution is very simple. The date picker updates the edited values only when it losts focus, so before getting the values you have to call:
datePicker.clearFocus();
After this call you can call:
selectedDay = datePicker.getDayOfMonth();selectedMonth = datePicker.getMonth();
and have the values updated.
Post a Comment for "Custom Datepicker As Preference Does Not Keep Value When User Edits Value In Field"