【问题标题】:Detect change in preferences检测偏好变化
【发布时间】:2012-01-23 07:05:44
【问题描述】:

我有一个扩展 PreferenceActivity 的类:

public class PreferenceActivity extends android.preference.PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }

}

而且我有多种偏好:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
android:title="Preferences">
    <PreferenceCategory
        android:title="Web Server">

        <EditTextPreference
            android:key="accessToken_key"
            android:title="Access Token"
            android:summary="The access token required to access the web server"
            android:dialogTitle="Access Token"
            android:numeric="integer"
            android:maxLength="12" />

    </PreferenceCategory>

</PreferenceScreen>

如何检测用户何时更改 EditTextPreference,以便我可以立即将新值存储到变量中?

【问题讨论】:

    标签: java android sharedpreferences preferenceactivity


    【解决方案1】:

    试试看

    http://developer.android.com/reference/android/preference/Preference.html http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html

    如果您没有运行基于片段的首选项,那么

        findPreference("key_for_pref").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                // TODO Auto-generated method stub
                return false;
            }
        });
    

    警告:此 findPreference api 在较新的基于片段的首选项中已弃用

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2023-04-05
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多