我正在工作android。我想在我的代码中进行共享首选项,但我不知道如何对数组进行共享首选项以及如何在另一个类中使用该共享首选项的值。
这是我在一个 for 循环中的数组:- urls[i]=sitesList.getWebsite().get(i);
我想对此 urls[] 数组进行共享首选项。请建议我如何编写代码来声明共享首选项以及如何检索该共享首选项的值?
先感谢您。
putStringSet
and getStringSet
仅在 API 11 中可用。
或者,您可以使用 JSON 序列化数组,如下所示:
public static void setStringArrayPref(Context context, String key, ArrayList<String> 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<String> getStringArrayPref(Context context, String key) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String json = prefs.getString(key, null);
ArrayList<String> urls = new ArrayList<String>();
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;
}
像这样设置和检索您的 URL:
// store preference
ArrayList<String> list = new ArrayList<String>(Arrays.asList(urls));
setStringArrayPref(this, "urls", list);
// retrieve preference
list = getStringArrayPref(this, "urls");
urls = (String[]) list.toArray();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)