package com.lemoulinstudio.bikefriend.preference; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceGroup; import com.lemoulinstudio.bikefriend.R; public class BikefriendPreferenceActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { public static String PREFERENCES_NAME = BikefriendPreferences.class.getSimpleName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set which preferences to use. getPreferenceManager().setSharedPreferencesName(PREFERENCES_NAME); // Opening the layout addPreferencesFromResource(R.xml.preferences); // Init the summary of items recursively. initSummary(getPreferenceScreen()); } @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { initSummary(findPreference(key)); } private void initSummary(Preference preference) { if (preference instanceof PreferenceGroup) { PreferenceGroup group = (PreferenceGroup) preference; for (int i = 0; i < group.getPreferenceCount(); i++) { initSummary(group.getPreference(i)); } } else { if (preference instanceof EditTextPreference) { EditTextPreference editTextPreference = (EditTextPreference) preference; preference.setSummary(editTextPreference.getText()); } else if (preference instanceof ListPreference) { ListPreference listPreference = (ListPreference) preference; preference.setSummary(listPreference.getEntry()); } } } }