【问题标题】:SharedPreferences get allways return default instead real valueSharedPreferences 总是返回默认值而不是实际值
【发布时间】:2013-02-20 18:24:12
【问题描述】:

我看到了这个主题的一些帖子,并尝试了没有工作的解决方案。

我在主要活动中写道:

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);;
setTheme(sharedPreferences.getInt("selectedTheme", 0));

它总是返回 0 。

我检查了模拟器中的 Setting.xml 文件:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="STheme" value="2131099649" />
<int name="selectedTheme" value="2131099649" />
<string name="SThemeS">R.style.AppTheme</string>
</map>

你可以看到键值“selectedTheme”在那里。

有什么想法吗?

另一个问题:我必须创建吗

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);;

对于每个使用 sharedPreferences 的活动?

【问题讨论】:

    标签: java get hashmap themes settings


    【解决方案1】:

    SharedPreferences 创建时文件的名称与创建他的活动相同。

    因此,如果您在 Setting 活动中创建 SharedPreferences 并希望从其他活动中获取首选项,则必须指定 SharedPreferences 文件的名称。

    如果您尝试从同一活动中获取偏好,则无需这样做。

    示例: SharedPreferences 在设置活动中创建并从不同活动中读取:

    在当前活动中添加这一行 -

    SharedPreferences preferences = context.getSharedPreferences("Setting",
                    MODE_PRIVATE)
    

    现在你可以提取数据了....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2019-06-22
      相关资源
      最近更新 更多