Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用新值调用首选项?_Android_Android Preferences - Fatal编程技术网

Android 如何使用新值调用首选项?

Android 如何使用新值调用首选项?,android,android-preferences,Android,Android Preferences,我使用了一些CheckBoxPreferences,但它们不是独立的。也就是说,我改变了一个复选框偏好,其他的都是固定的。我使用以下代码: public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) {

我使用了一些CheckBoxPreferences,但它们不是独立的。也就是说,我改变了一个复选框偏好,其他的都是固定的。我使用以下代码:

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, "");