我需要在共享首选项中保存一些字符串数组,然后再获取它们。我尝试了以下方法:prefsEditor.putString(PLAYLISTS, playlists.toString());,其中播放列表是String[]并得到:playlist= myPrefs.getString(PLAYLISTS, "playlists");,其中播放列表是String,但它不工作。我该怎么做呢?
prefsEditor.putString(PLAYLISTS, playlists.toString());
String[]
playlist= myPrefs.getString(PLAYLISTS, "playlists");
String
ivqmmu1c1#
您可以创建自己的数组String表示形式,如下所示:
StringBuilder sb = new StringBuilder(); for (int i = 0; i < playlists.length; i++) { sb.append(playlists[i]).append(","); } prefsEditor.putString(PLAYLISTS, sb.toString());
然后,当你从SharedPreferences中获取String时,只需像这样解析它:
String[] playlists = playlist.split(",");
这个应该可以了。
roqulrg32#
从API级别11开始,您可以使用putStringSet和getStringSet来存储/检索字符串集:
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);
5lwkijsr3#
可以使用JSON将数组序列化为字符串并将其存储在首选项中。请参阅我的答案和示例代码以了解类似的问题:如何编写代码,使sharedpreferences阵列在android?
sdnqo3pr4#
HashSet<String> mSet = new HashSet<>(); mSet.add("data1"); mSet.add("data2"); saveStringSet(context, mSet);
其中
public static void saveStringSet(Context context, HashSet<String> mSet) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = sp.edit(); editor.putStringSet(PREF_STRING_SET_KEY, mSet); editor.apply(); }
以及
public static Set<String> getSavedStringSets(Context context) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); return sp.getStringSet(PREF_STRING_SET_KEY, null); } private static final String PREF_STRING_SET_KEY = "string_set_key";
92vpleto5#
如果你想要更多的信息Click here,使用这个简单的函数在preference中存储数组列表
public static void storeSerializeArraylist(SharedPreferences sharedPreferences, String key, ArrayList tempAppArraylist){ SharedPreferences.Editor editor = sharedPreferences.edit(); try { editor.putString(key, ObjectSerializer.serialize(tempAppArraylist)); editor.apply(); } catch (IOException e) { e.printStackTrace(); } }
以及如何从preference中获取存储的数组列表
public static ArrayList getSerializeArraylist(SharedPreferences sharedPreferences, String key){ ArrayList tempArrayList = new ArrayList(); try { tempArrayList = (ArrayList) ObjectSerializer.deserialize(sharedPreferences.getString(key, ObjectSerializer.serialize(new ArrayList()))); } catch (IOException e) { e.printStackTrace(); } return tempArrayList; }
5条答案
按热度按时间ivqmmu1c1#
您可以创建自己的数组String表示形式,如下所示:
然后,当你从SharedPreferences中获取String时,只需像这样解析它:
这个应该可以了。
roqulrg32#
从API级别11开始,您可以使用putStringSet和getStringSet来存储/检索字符串集:
5lwkijsr3#
可以使用JSON将数组序列化为字符串并将其存储在首选项中。请参阅我的答案和示例代码以了解类似的问题:
如何编写代码,使sharedpreferences阵列在android?
sdnqo3pr4#
其中
以及
92vpleto5#
如果你想要更多的信息Click here,使用这个简单的函数在preference中存储数组列表
以及如何从preference中获取存储的数组列表