Ponga y obtenga matriz de cadenas de preferencias compartidas

Necesito guardar en las preferencias compartidas alguna matriz de cadenas y después de eso para obtenerlas. Intenté esto:

prefsEditor.putString(PLAYLISTS, playlists.toString()); donde las listas de reproducción son una String[]

y para obtener:

playlist= myPrefs.getString(PLAYLISTS, "playlists"); donde la lista de reproducción es una String pero no está funcionando.

Cómo puedo hacer esto ? ¿Alguien puede ayudarme?

Gracias por adelantado.

Puede crear su propia representación de cadena de la matriz de esta manera:

 StringBuilder sb = new StringBuilder(); for (int i = 0; i < playlists.length; i++) { sb.append(playlists[i]).append(","); } prefsEditor.putString(PLAYLISTS, sb.toString()); 

Luego, cuando obtenga el String de SharedPreferences, simplemente analícelo de esta manera:

 String[] playlists = playlist.split(","); 

Esto debería hacer el trabajo.

Desde el nivel 11 de la API, puede usar putStringSet y getStringSet para almacenar / recuperar conjuntos de cadenas:

 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 someStringSet = pref.getStringSet(SOME_KEY); 

Puede usar JSON para serializar su matriz como una cadena y almacenarla en las preferencias. Vea mi respuesta y código de ejemplo para una pregunta similar aquí:

¿Cómo se puede escribir el código para hacer preferencias compartidas para una matriz en Android?

 HashSet mSet = new HashSet<>(); mSet.add("data1"); mSet.add("data2"); saveStringSet(context, mSet); 

dónde

 public static void saveStringSet(Context context, HashSet mSet) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = sp.edit(); editor.putStringSet(PREF_STRING_SET_KEY, mSet); editor.apply(); } 

y

 public static Set 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";