0

我的应用程序中有非常简单的首选项页面:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
   <CheckBoxPreference
       android:key="autoCheck"
       android:title="@string/autoCheckLbl"
       android:defaultValue="true"
       android:summary="@string/autoCheckDesc" 
    />   
</PreferenceScreen>

此设置文件由自定义 PreferenceActivity 管理,它只执行以下操作:

public class SettingsActivity extends PreferenceActivity
{
    protected void onCreate(Bundle savedState) 
    {
        super.onCreate(savedState);

        addPreferencesFromResource(R.xml.settings);
    }
}

问题是,当用户进行一些更改时,即选中/取消选中该设置,似乎该更改没有保存。例如,当用户导航回主要活动时,我正在其中检索autoCheck设置的当前值,这样:

boolean autoCheck = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("autoCheck", true);

...检索到的值不是用户先前设置的值。只有在重新启动 Android 模拟器后,才能正确设置新值。

4

0 回答 0