package com.uw.ictd.respeak; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.widget.BaseAdapter; public class SettingsFragment extends PreferenceFragment { public static final String KEY_PREF_PHONE_NUMBER = "phone_number"; private SharedPreferences mSettings; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); // Display the saved phone number mSettings = getPreferenceScreen().getSharedPreferences(); Preference phoneNumberPref = findPreference(KEY_PREF_PHONE_NUMBER); phoneNumberPref.setSummary(mSettings.getString(KEY_PREF_PHONE_NUMBER, null)); } @Override public void onStart() { super.onStart(); SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { if (key.equals(KEY_PREF_PHONE_NUMBER)) { Preference selectedPref = findPreference(key); selectedPref.setSummary(sharedPreferences.getString(key, "")); ((BaseAdapter) getPreferenceScreen().getRootAdapter()) .notifyDataSetChanged(); } } }; mSettings.registerOnSharedPreferenceChangeListener(listener); } }