Setting and fetching a StringSet from SharedPreferences?(是否从SharedPreferences设置和获取StringSet?)
本文介绍了是否从SharedPreferences设置和获取StringSet?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在构建一个Android应用程序。我要在首选项中存储一组字符串,以便根据其登录信息跟踪使用该应用程序的用户。
我不想使用数据库,所以我知道我应该使用SharedPreferences来存储登录的人员列表。我希望能够重置此列表,因此不能将单个登录数据保留为String而不是StringSets。使用单个字符串意味着我必须保留这些字符串的另一个列表,以便我可以在需要时清理它们。字符串集更易于维护。
以下是我到目前为止所做的工作:
//this is my preferences variable
SharedPreferences prefs = getSharedPreferences("packageName", MODE_PRIVATE);
//I create a StringSet then add elements to it
Set<String> set = new HashSet<String>();
set.add("test 1");
set.add("test 2");
set.add("test 3");
//I edit the prefs and add my string set and label it as "List"
prefs.edit().putStringSet("List", set);
//I commit the edit I made
prefs.edit().commit();
//I create another Set, then I fetch List from my prefs file
Set<String> fetch = prefs.getStringSet("List", null);
//I then convert it to an Array List and try to see if I got the values
List<String> list = new ArrayList<String>(fetch);
for(int i = 0 ; i < list.size() ; i++){
Log.d("fetching values", "fetch value " + list.get(i));
}
但是,事实证明Set<String> fetch
为NULL,并且我有一个NULL指针异常,这可能是因为我没有正确存储或提取我的StringSet。
推荐答案
先创建编辑器对象:
SharedPreferences.Editor editor = prefs.edit();
并使用编辑器对象存储和获取字符串集,如下所示:
editor.putStringSet("List", set);
editor.apply();
Set<String> fetch = editor.getStringSet("List", null);
这篇关于是否从SharedPreferences设置和获取StringSet?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:是否从SharedPreferences设置和获取StringSet?
基础教程推荐
猜你喜欢
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01