github:
resource: EditTextPreference
* Reference: Udacity Nanodegree Program- Become an Android Developer *
- Add and EditTextPreference with all of the appropriate strings stored in strings.xml. It should have a key, default value of 1 and title.
- Modify the setupSharedPreferences method and onSharedPreferencesChanged method to properly update the minSizeScale, assuming a proper numerical value is saved in shared preferences.
- Add code here to properly set the summary for an EditTextPreference.
<!-- TODO (1) Add and EditTextPreference with all of the appropriate strings stored in strings.xml. It should have a key, default value of 1 and title --> <EditTextPreference android:defaultValue="@string/pref_size_default" android:key="@string/pref_size_key" android:title="@string/pref_size_label"/>
/res/values/strings.xml
<!-- Label for the edit preference --> <!-- Key for the edit preference --> <!-- default for the edit preference --> <string name="pref_size_label">Size Multiplier</string> <string name="pref_size_key" translatable="false">size</string> <string name="pref_size_default" translatable="false">1</string>
// TODO (2) Modify the setupSharedPreferences method and onSharedPreferencesChanged method to // properly update the minSizeScale, assuming a proper numerical value is saved in shared preferences private void setupSharedPreferences() { // Get all of the values from shared preferences to set it up SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); ............. loadSizeFromSharedPreferences(sharedPreferences); loadColorFromPreferences(sharedPreferences); // Register the listener sharedPreferences.registerOnSharedPreferenceChangeListener(this); }
@Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(getString(R.string.pref_show_bass_key))) { mVisualizerView.setShowBass(sharedPreferences.getBoolean(key, getResources().getBoolean(R.bool.pref_show_bass_default))); } else if (key.equals(getString(R.string.pref_show_mid_range_key))) { mVisualizerView.setShowMid(sharedPreferences.getBoolean(key, getResources().getBoolean(R.bool.pref_show_mid_range_default))); } ..... } else if(key.equals(getString(R.string.pref_size_key))){ loadSizeFromSharedPreferences(sharedPreferences); } }
private void setPreferenceSummary(Preference preference, String value) { // TODO (3) Don't forget to add code here to properly set the summary for an EditTextPreference if (preference instanceof ListPreference) { // For list preferences, figure out the label of the selected value ListPreference listPreference = (ListPreference) preference; int prefIndex = listPreference.findIndexOfValue(value); if (prefIndex >= 0) { // Set the summary to that label listPreference.setSummary(listPreference.getEntries()[prefIndex]); } }else if(preference instanceof EditTextPreference){ //For EditTextPreferences, set the summary to the value's string representation. preference.setSummary(value); } }