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

Estoy trabajando en Android . Quiero hacer una preferencia compartida en mi código, pero no sé la forma en que puedo hacer una preferencia compartida para la matriz y cómo puedo usar el valor de esa preferencia compartida en otra clase.

Esta es mi matriz en un ciclo for: – urls [i] = sitesList.getWebsite (). Get (i);

Quiero hacer una preferencia de compartir de esta matriz urls []. por favor sugiérame cómo puedo escribir código para declarar preferencia compartida y cómo puedo recuperar el valor de esa preferencia compartida?

Gracias de antemano.

putStringSet y getStringSet solo están disponibles en API 11.

Alternativamente, puedes serializar tus matrices usando JSON así:

 public static void setStringArrayPref(Context context, String key, ArrayList values) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = prefs.edit(); JSONArray a = new JSONArray(); for (int i = 0; i < values.size(); i++) { a.put(values.get(i)); } if (!values.isEmpty()) { editor.putString(key, a.toString()); } else { editor.putString(key, null); } editor.commit(); } public static ArrayList getStringArrayPref(Context context, String key) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String json = prefs.getString(key, null); ArrayList urls = new ArrayList(); if (json != null) { try { JSONArray a = new JSONArray(json); for (int i = 0; i < a.length(); i++) { String url = a.optString(i); urls.add(url); } } catch (JSONException e) { e.printStackTrace(); } } return urls; } 

Establezca y recupere sus URL de esta manera:

 // store preference ArrayList list = new ArrayList(Arrays.asList(urls)); setStringArrayPref(this, "urls", list); // retrieve preference list = getStringArrayPref(this, "urls"); urls = (String[]) list.toArray();