일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Java
- android
- 국제유가
- ruby
- 금리인상
- 다우산업
- e-mailwriting
- 안드로이드
- englishwriting
- 어학·외국어
- toeice-mail
- 영어메일
- 셀트리온
- Intent
- 토익이메일
- 사드보복완화
- 트럼프
- 나스닥
- Python
- dataframe
- 다우
- 시황
- S&P
- 무역전쟁
- 파이썬
- 네마녀의날
- 화승엔터프라이즈
- LG전자
- 주식시황
- 영어메일쓰기
- Today
- Total
Developer MJ Story
[Android/SharedPreference] SharedPreference ArrayList<String> 저장하기 본문
[Android/SharedPreference] SharedPreference ArrayList<String> 저장하기
집근처 2018. 2. 12. 11:25안녕하세요.
집근처 개발자 입니다.
Android에서 제공하는 File 저장 서비스인 SharedPreference가 있습니다.
SharedPreference는 Int, Float, String 등의 기본 type의 data만 저장이 가능합니다.
문제는 개발하다보면 list형태의 data를 저장해야 하는 일이 발생합니다.
이럴때 저장할 수 있는 방법이 JSONString을 이용하면 list 형태의 data를 저장할 수 있습니다.
방법또한 간단합니다.
public void setStringArrayList(String key, ArrayList<String> valueList){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); SharedPreferences.Editor editor = prefs.edit(); JSONArray jsonArray = new JSONArray(); for(int i = 0; i < valueList.size(); i++){ jsonArray.put(valueList.get(i)); } if(!valueList.isEmpty()){ editor.putString(key, jsonArray.toString()); }else{ editor.putString(key, null); } } public ArrayList<String> getStringArrayList(String key){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); String json = prefs.getString(key, null); ArrayList<String> valueList = new ArrayList<>(); if(json != null){ try{ JSONArray jArray = new JSONArray(json); for(int i = 0; i < jArray.length(); i++){ String data = jArray.optString(i); valueList.add(data); } }catch(JSONException e){ Logger.e(tag, e.getMessage()); } } return valueList; }
위 함수를 그대로 사용하면 됩니다.
참 쉽죠?