Android 如何使用新值调用首选项?
我使用了一些CheckBoxPreferences,但它们不是独立的。也就是说,我改变了一个复选框偏好,其他的都是固定的。我使用以下代码:Android 如何使用新值调用首选项?,android,android-preferences,Android,Android Preferences,我使用了一些CheckBoxPreferences,但它们不是独立的。也就是说,我改变了一个复选框偏好,其他的都是固定的。我使用以下代码: public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) {
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
Context context = getApplicationContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPrefs, String key) {
SharedPreferences.Editor editor = sharedPrefs.edit();
if ((key.equals("A")) & (key.equals("B"))) {
editor.putBoolean("C", true);
editor.commit();
}
}
}
在此之后,CheckBoxPreference“C”有一个新值,但我看不到它。如何使用新值更新屏幕?通过使用PreferenceActivity的子类,您不必处理PreferenceUI的更新。在addPreferencesFromResource()加载的资源文件中定义首选项,活动将相应地呈现。更改将自动持久化,并应立即可见。您不必将首选项活动注册为SharedReferences.OnSharedPreferenceChangeListener 调用onSharedPreferenceChanged()时,新值已保存到首选项中 此通知适用于PreferenceActivity子类以外的其他活动。要知道如何访问保存的首选项,您需要查看res/xml/settings.xml中的文件,它应该包含android:key属性。属性值为您提供了首选项的键 您可以通过以下方式检索该值:
PreferenceManager.getDefaultSharedPreferences(aContext).getString(key, "");