SharedPreferences.OnSharedPreferenceChangeListener
で Preference の変更を検知し、そこで渡された key から、
findPreference(key)
で Preference を、sharedPreferences.getXXX(key, default_value)
から値を取得する。setSummary(summary)
などで表示を更新する。
public class SettingFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{ public SettingFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.setting); } @Override public void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
Preference p = findPreference("TEST_PREFERENCE_STRING_KEY"); String value = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("TEST_PREFERENCE_STRING_KEY", "default_value"); p.setSummary(value); } @Override public void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { Log.i("onSharedPreferenceChanged", key); if(key.equals("TEST_PREFERENCE_STRING_KEY")){ Preference p = findPreference(key); String value = sharedPreferences.getString(key, "default_value"); p.setSummary(value); } } }
スライドバーが見にくい
返信削除