如何编写代码,以使android的数组共享首选项?
我在android工作。 我想在我的代码中使sharedpreference,但我不知道我可以做一个数组sharedpreference的方式,以及如何可以在另一个类中使用该sharedpreference的值。
这是我的数组在一个for循环: – urls [i] = sitesList.getWebsite()。get(i);
我想让这个urls []数组的共享偏好。 请build议我如何编写代码来声明sharedpreference以及如何检索该sharedpreference的值?
先谢谢你。
putStringSet
和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();
- 双SIM卡Android
- Windows 8.1设备pipe理器现在显示了Google Nexus 7的ACER设备,而不是Android设备
- “内容提供者”和“SQLite数据库”之间的确切区别
- 在Android Studio中导入现有项目时如何设置gradle home
- INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES第一次安装应用程序
- 从右向左滑动Androidanimation
- 如何在Android中查找运营商的名称
- 如何在Genymotion虚拟设备上安装Google框架(Play,Accounts等)?
- 是否有可能在Gradle中声明一个可用于Java的变量?