
我创建了一个简单的游戏.最后,用户的姓名和分数应该进入高分列表.为此,我想将这些数据存储在sharedpreferences中.我看到了一个帖子,并且试图将其应用到我的应用程序中,但是它强制关闭.我什至不知道这是否是我在做的正确的事情.因此,我将这些密钥对(玩家,得分)放入了一个arrayList.从那里,我可以将值输入到列表视图中.
这只是一个例子.
SharedPreferences.Editor scoreEditor = myscores.edit(); scoreEditor.putString("PLAYER", "Thomas"); scoreEditor.putString("score", "5"); scoreEditor.commit(); final ArrayList<HashMap<String,String>> List = new ArrayList<HashMap<String,String>>(); Map<String, ?> items = myscores.getAll(); for(String s : items.keySet()){ HashMap<String,String> hmap = new HashMap<String,String>(); hmap.put("PLAYER", s); hmap.put("score", items.get(s).toString()); List.add(hmap); } Toast.makeText(Start.this, "List size: "+List.size(), Toast.LENGTH_LONG).show();对我来说,如果我像这样存储这些数据也可以:
scoreEditor.putString("DATA", "Thomas" + "-" + "5");并将其放入ArrayList< String> List =新的ArrayList< String>();
但我不知道该怎么做.
你们能帮我吗?
编辑:所以我可以按照Hapazar的建议走另一条路.我把这段代码放在一起,但是我不知道这是否是这样做的方法.我还没有测试过,因为sg的sharedpreferences是错误的,我仍在设法弄清楚.
SharedPreferences.Editor scoreEditor = myscores.edit();scoreEditor.putString("DATA", "Thomas" + "-" + "5");scoreEditor.commit();HashSet<String> hset=new HashSet<String>();hset.addAll((Collection<? extends String>) myscores.getAll());ArrayList<String> List = new ArrayList<String>(hset);解决方法:
SharedPreferences编辑器不接受列表,但接受Sets.您可以将列表转换为HashSet或类似的东西,然后像这样存储它.当您读回它时,将其转换为ArrayList,如果需要对其进行排序,您就可以开始了.
请注意,集合必须是一组字符串,因此您必须坚持使用“ Thomas”“-”“ 5”设置.
编辑:对于您的新更新,我在想更多类似的东西
//RetrIEve the valuesSet<String> set = new HashSet<String>();set = myscores.getStringSet("key", null);//Set the valuesSet<String> set = new HashSet<String>();set.addAll(listofExistingscores);scoreEditor.putStringSet("key", set);scoreEditor.commit();该代码未经测试,但应该可以工作
编辑:如果您的API级别低于get / setStringSet()级别,则可以尝试以下 *** 作:
1)将高分列表变成带分隔符的字符串.这意味着,如果您有[“ Tom,1”,“ Ed,5”],则可以遍历它并将其转换为类似于“ Tom,1 | Ed,5”的字符串.您可以使用setString(..)轻松存储它.
2)当您想读回值时,执行getString(..),然后执行String.split(“ |”)以获取原始列表.好吧,它返回一个数组,但是可以很容易地将其转换为列表.
总结以上是内存溢出为你收集整理的Android sharedpreferences进入arraylist全部内容,希望文章能够帮你解决Android sharedpreferences进入arraylist所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)