草庐IT

putStringSet

全部标签

android - 使用 getStringSet 和 putStringSet 丢失一些值

我发现一些存储在Set中的值在重新启动应用程序后丢失了。为什么?这是一个AndroidAPI错误吗?有人建议将字符串存储在数据库中。我还没有测试过,但我认为这个建议是解决问题的方法。getStringSet和putStringSet怎么样? 最佳答案 根据我的理解,这是一个错误。问题是当您尝试存储一个集合时,Android会将您尝试保存的修改后的集合与存储在SharedPreferences中的当前集合进行比较。当它们是同一个对象(具有相同的引用)时,新的对象将被忽略。解决方法是在存储之前创建该集合的新副本。Here是详细信息,问题

Android SharedPreferences 不保存

我已多次使用共享首选项,但出于某种原因,更改未保存在我正在测试的新应用中。这是重要代码的fragment:SharedPreferencessp=getSharedPreferences(getString(R.string.key_preferences),MODE_PRIVATE);Setwidgets=sp.getStringSet(getString(R.string.key_widgets),(newHashSet()));widgets.add(name+""+Integer.toString(appWidgetId)+""+address);sp.edit().putSt

android - SharedPreferences putStringSet 不起作用

这个问题在这里已经有了答案:MisbehaviorwhentryingtostoreastringsetusingSharedPreferences(6个答案)关闭8年前。我需要将Set放入SharedPreference,但我遇到了问题。当我点击按钮时,我会从SharedPreference中获取Set并将数据添加到Set然后放回SharedPreference,但是当我销毁项目并再次打开它时,sharedPreference只会在Set中获取一个字符串SharedPreferencess=getSharedPreferences("db",0);Log.i("chauster","

android SharedPreferences putStringSet 顺序/排序

我尝试保存/恢复一组字符串,除一件事外,一切正常。当我创建我的字符串时,我放了:Setset=newHashSet();for(inti=0;i顺序例如是“蓝牙”“应用程序”“数据”。当我回来的时候:Setset=prefs.getStringSet(key,newHashSet());for(Stringtoggle:set){Togglet=newToggle();t.deserialize(toggle);toggles.add(t);}我得到“应用程序”“蓝牙”“数据”,它们是按名称排序的,我不想要这个。我想获得与我保存的相同的订单。任何人都可以帮助我吗?