SharedPreference에 ArrayList 저장하기

Jang Seok Woo·2020년 5월 9일
0

Android Studio

목록 보기
5/20

SharedPreferences에 ArrayList 형식의 데이터를 저장하는 방법

저장된 String은 Json형식이기 때문에 ArrayList로 변환이 가능합니다.

아래 코드 setStringArrayPref는 ArrayList를 Json으로 변환하여 SharedPreferences에 String을 저장하는 코드입니다.

getStringArrayPref는 SharedPreferences에서 Json형식의 String을 가져와서 다시 ArrayList로 변환하는 코드입니다.

private 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.apply();
}

private 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;
}

profile
https://github.com/jsw4215

0개의 댓글