例としてEditTextPreferenceの設定がされていればSummaryに表示するようにします。
リスナーをimplementsする場合
public class Setting extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
PreferenceScreen ps = getPreferenceScreen();
EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
if(ep.getText() != null && !ep.getText().equals("")) ep.setSummary(ep.getText());
}
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if(key.equals("key")) {
PreferenceScreen ps = getPreferenceScreen();
EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
if(ep.getText() != null && !ep.getText().equals("")) {
ep.setSummary(ep.getText());
} else {
ep.setSummary("デフォルトのSummary");
}
}
}
}
続きを読む…»