【问题标题】:EditTextPreference with false persistent does not call onSharedPreferenceChanged具有假持久性的 EditTextPreference 不会调用 onSharedPreferenceChanged
【发布时间】:2015-05-22 10:20:55
【问题描述】:

我有这个 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"

【问题讨论】:

    标签: android sharedpreferences android-preferences


    【解决方案1】:

    您必须在 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
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      相关资源
      最近更新 更多