java - Android 中的首选项不会保留

标签 java android android-fragments preferences

我已阅读 here ,首选项会自动保留。我尝试按照说明进行操作,但该复选框始终具有默认值。我的代码如下:

1) 我有一个可打开“首选项”屏幕的菜单:

int id = item.getItemId();
if (id == R.id.action_settings) {
          {
           Intent myIntent = new Intent(this, PreferencesActivity.class);
           startActivity(myIntent);
          }

2) Preferences Fragment 类,加载设置:

public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preference_screen);
}

}

3) 加载 fragment 的 Activity :

public class PreferencesActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new SettingsFragment())
            .commit();
}
}

首选项屏幕 xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference android:enabled="true" 
android:title="@string/ShowAdsTitle"  
android:summaryOn="@string/ShowAdsOnPreference" 
android:selectable="true" 
android:summaryOff="@string/ShowAdsOnPreference"
android:key="@string/value_showads_preference"/>
</PreferenceScreen>

不知何故,我的设置不是持久的。 android:key 是为我的每个设置设置的。

提前致谢!

最佳答案

android:key="value"/>

尝试为 android:key 放置一个直接字符串,而不是字符串中的值,因为您将无法访问翻译后的键值

关于java - Android 中的首选项不会保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24849718/

相关文章:

Java 泛型 : Declare map value of generic type

java - Java生成1到10的6个不同数字

android - 多次调用 FragmentTransaction.replace() - 只有一次在方向改变后有效

android - 是否可以在 Fragments 中搜索?

java - 为什么我在一种情况下会出现空指针异常,而在类似情况下却不会?

java - 如何对 for 循环的每次迭代进行基准测试(使用 JMH)?

java - HttpURLconnection 持续返回错误 - Android

android - 使用 Retrofit 上传图像时出现 FileNotFoundException

android - 在 Android M 上请求 SYSTEM 权限?

android - 如何在两个不同的 fragment 中使用相同的数据