从共享首选项中获取并获取string数组
我需要保存共享首选项的一些string数组,然后才能得到它们。 我试过这个:
prefsEditor.putString(PLAYLISTS, playlists.toString());
播放列表是String[]
并得到:
playlist= myPrefs.getString(PLAYLISTS, "playlists");
播放列表是一个String
但它不工作。
我该怎么做? 任何人都可以帮我吗?
提前致谢。
你可以像这样创build你自己的数组的string表示forms:
StringBuilder sb = new StringBuilder(); for (int i = 0; i < playlists.length; i++) { sb.append(playlists[i]).append(","); } prefsEditor.putString(PLAYLISTS, sb.toString());
然后当你从SharedPreferences获取String时,简单地parsing它就像这样:
String[] playlists = playlist.split(",");
这应该做的工作。
从API级别11,您可以使用putStringSet和getStringSet来存储/检索string集:
SharedPreferences pref = context.getSharedPreferences(TAG, Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putStringSet(SOME_KEY, someStringSet); editor.commit(); SharedPreferences pref = context.getSharedPreferences(TAG, Context.MODE_PRIVATE); Set<String> someStringSet = pref.getStringSet(SOME_KEY);
您可以使用JSON将您的数组序列化为string并将其存储在首选项中。 看到我的答案和示例代码在这里有一个类似的问题:
如何编写代码,以使android的数组共享首选项?