gpt4 book ai didi

android - 设置 sharedpreferences 默认值

转载 作者:行者123 更新时间:2023-11-29 19:10:47 29 4
gpt4 key购买 nike

我正在使用以下方法来保存和读取用户设置:

    private void saveUserSettings(){
SharedPreferences userSettings = getSharedPreferences("userSettings", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = userSettings.edit();
editor.putInt("timeOne",timeOne);
editor.apply();
}

private int getUserSettings(){
SharedPreferences userSettings = getSharedPreferences("userSettings", Context.MODE_PRIVATE);
timeOne = userSettings.getInt("timeOne",timeOne);
}

然后在onCreate下面:

SharedPreferences prefs = getSharedPreferences("userSettings", Context.MODE_PRIVATE);

这没问题,应用重新启动时会保存数据。但是,我希望在最初安装应用程序时拥有默认数据,这些值似乎应该存储在 xml 文件中。

我在 res/xml/preferences.xml 下创建了以下文件

    <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference
android:key="timeOne"
android:defaultValue="2"/>
</PreferenceScreen>

然后在onCreate中:

PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

我将“userSettings”更改为首选项以匹配,但这不起作用并返回零值。这种读取 xml 文件的方法是否正常或/和我是否忽略了什么?

最佳答案

我觉得你把自己搞得太复杂了。

在此指令中,如果没有与该名称的共享首选项,则第二个参数是默认使用的。

您只需将该值设置为您需要的默认值即可。

timeOne = userSettings.getInt("timeOne",<Put here the default value>);

编辑我

假设应用程序是第一次运行且尚未保存设置,则默认值为 2。

读取值的方法应该是这样的。

private int getUserSettings(){
SharedPreferences userSettings = getSharedPreferences("userSettings", Context.MODE_PRIVATE);
timeOne = userSettings.getInt("timeOne",2);
}

关于android - 设置 sharedpreferences 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426180/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com