具有 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"

您必须在 PreferenceActivityPreferenceFragment:

的代码中附加自定义侦听器
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
    }
});