package de.lukasniemeier.mensa.ui.preference; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; /** * Created on 18.09.13. */ public class BasePreferenceFragment extends PreferenceFragment { protected static final Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object value) { String stringValue = value.toString(); if (preference instanceof ListPreference) { ListPreference listPreference = (ListPreference) preference; int index = listPreference.findIndexOfValue(stringValue); preference.setSummary( index >= 0 ? listPreference.getEntries()[index] : null); } else { preference.setSummary(stringValue); } return true; } }; protected static void bindPreferenceSummaryToValue(Preference preference) { preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager .getDefaultSharedPreferences(preference.getContext()) .getString(preference.getKey(), "")); } protected static void bindPreferenceToCheckbox(CheckBoxPreference checkboxPreference, final Preference target) { target.setEnabled(checkboxPreference.isChecked()); checkboxPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object value) { target.setEnabled((Boolean) value); return true; } }); } }