具有 false persistent 的 EditTextPreference 不会调用 onSharedPreferenceChanged
EditTextPreference with false persistent does not call onSharedPreferenceChanged
我有这个 EditTextPreference
<EditTextPreference
android:title="@string/settings_server"
android:summary="@string/server_name_message"
android:persistent="false"
android:key="SERVER_NAME" />
但是对于 persistent="false" 它不会调用 onSharedPreferenceChanged
方法。
如何检测此事件保持 android:persistent="false"
您必须在 PreferenceActivity
或 PreferenceFragment
:
的代码中附加自定义侦听器
EditTextPreference prefServerName = (EditTextPreference) findPreference("SERVER_NAME");
prefServerName.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = (String) newValue;
// do what you need
return true; // indicates you processed the new value
}
});
我有这个 EditTextPreference
<EditTextPreference
android:title="@string/settings_server"
android:summary="@string/server_name_message"
android:persistent="false"
android:key="SERVER_NAME" />
但是对于 persistent="false" 它不会调用 onSharedPreferenceChanged
方法。
如何检测此事件保持 android:persistent="false"
您必须在 PreferenceActivity
或 PreferenceFragment
:
EditTextPreference prefServerName = (EditTextPreference) findPreference("SERVER_NAME");
prefServerName.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = (String) newValue;
// do what you need
return true; // indicates you processed the new value
}
});