GettingSignals

ArrayListをJSONに変換して保存する

2016年4月7日
Posted by hina

ArrayListをPreferencesに保存したかったけど、
サイズが可変なのでJSONにしてしまったときのコード。

保存処理

	private static void saveItems(Context context, String key, ArrayList<String> items) {
                // List<String> -> JSONに変換
		String json = new JSONArray(items).toString();
                // Preferencesに保存
		SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
		pref.edit().putString(key, json).commit();
	}

読出処理

	private static ArrayList<String> loadItems(Context context, String key) {
		ArrayList<String> items = new ArrayList<String>();
                // Preferencesから呼び出し
		SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
		String json = pref.getString(key, "");
		if(!TextUtils.isEmpty(json)) {
                        // JSON -> List<String>に変換
			try {
				JSONArray arr = new JSONArray(json);
				for(int i=0; i < arr.length(); i++) {
					items.add(arr.getString(i));
				}
			} catch (JSONException e) {
			}
		}
		return items;
	}
Share

Comments are currently closed.

Follow

カレンダー

2024年12月
 1
2345678
9101112131415
16171819202122
23242526272829
3031