2012-12-03 45 views
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")); 
} 

日志输出是 “饼干检索:无数据”。有人可以告诉我如何得到这个权利?

这个方法是纯java类的一部分可能很重要。被调用时,调用活动作为参数传递。

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

回答

1

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

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); 

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

另外,你需要调用

prefs.edit().putString("CAKEPHP", value).commit(); 
+0

感谢,将直接提交背后putString工作! 因为我想在不同的活动中使用storeString方法,并且在大多数情况下只使用一次或两次(onCreate&onDestroy),所以我认为它更适合初始化方法内的首选项。或者我错过了一个重要的观点? – friday