1

我目前正在尝试从共享首选项中存储和恢复字符串,但似乎出了点问题。

我想持久存储一个 cookie,所以我尝试将它的值存储在共享首选项中。不幸的是,当我尝试检索它时找不到它。

这是我的代码:

public void storeString(Activity ctx, String key, String value){
    SharedPreferences prefs = ctx.getSharedPreferences("com.test", Context.MODE_PRIVATE);
    prefs.edit().putString("CAKEPHP", value);
    prefs.edit().commit();

    SharedPreferences newprefs = ctx.getSharedPreferences("com.test", Context.MODE_PRIVATE);
    Log.i("test", "cookie retrieved: "+ newprefs.getString("CAKEPHP", "nodata"));
}

日志输出是“cookie 检索:nodata”。有人可以告诉我如何做到这一点吗?

此方法是普通 java 类的一部分可能很重要。调用时,调用活动作为参数传递。

任何帮助或提示表示赞赏!

4

1 回答 1

1

为 sharedpref 创建一个静态变量并将其初始化为

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

您不需要重复初始化 sharedpreferences。理想情况下,您应该在 onCreate 中初始化它并在整个活动中使用它。

此外,您需要致电

prefs.edit().putString("CAKEPHP", value).commit();
于 2012-12-03T12:57:28.037 回答