728x90
반응형
SMALL
안드로이드는 보통 서버와 통신할때 json 을 자주 사용한다. 가져온 데이터는 해당 디바이스에 저장하고 가져다 사용하기도 한다. 근데 SharedPreference 에서는 JSON 형식을 그대로 저장할수없고, 정해진 형식에 맞게 변환후 저장해서 사용해야한다.
예제 준비> 서버에서 데이터를 받아오는 클래스( 예로, Res_testData 라고 하겠음)
<저장소에 저장할 함수>
public void setStringPreferences(Context mContext, String key, String value) {
if (mContext == null) {
mContext = getApplicationContext();
}
SharedPreferences pref = mContext.getSharedPreferences(BaseConstant.PRE_KEY, mContext.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(key, value);
editor.commit();
}
<저장소에서 가져올 함수>
public String getStringPreferences(Context mContext, String key) {
if (mContext == null) {
mContext = getApplicationContext();
}
SharedPreferences pref = mContext.getSharedPreferences(BaseConstant.PRE_KEY, mContext.MODE_PRIVATE);
return pref.getString(key, "");
}
String형태로 저장및 가져오는 방법을 적겠다. 이때 공통적으로 사용하는게 구글에서 제공하는 Gson 이다. 이를 이용하여 변환을 해보겠다.
* [ Res_testData => Json => String => SharedPreference ]
저장할때에는 String 으로 변환후 저장해준다.
ex)전역변수를 준비해준다.
Res_testData res_testdata;
Gson gson = new Gson( );
//context(있다고 가정하겠음)
String strJsonSaveDateValue = gson.toJson(res_testdata);
setStringPreferences(context , "ResDataKeyName" , strJsonSaveDateValue);
- 저장하기 끝 -
이제 저장한 데이터를 가져오는 방법이다.
* [ SharedPreference => String => Json => Res_testData ]
가져올때는 저장할때의 반대방법으로 하면된다.
ex) 위의 예제들을 모두 가져다 사용하겠다.
JsonParser parser = new JsonParser( );
String strGetSharedData = getStringPreferences(context , "ResDataKeyName");
JsonElement json_element = parser.parse(strGetSharedData);
res_testdata = gson.fromJson(json_element , Res_testData.class);
- 가져오기 끝 -
- 끝 -
'Android Study' 카테고리의 다른 글
안드로이드 string.xml 기본 사용법 및 다국어 적용방법 (0) | 2019.04.25 |
---|---|
안드로이드 앱 삭제는 확실하게!! (0) | 2019.04.02 |
안드로이드 키보드 에 있는 다음,완료 버튼 작동 막기 (0) | 2019.03.29 |
입력값을 Filter 와 Match 를 이용하여 Pattern 체크하기 (0) | 2019.01.31 |
갤럭시 S9 디바이스 PC 연결이슈 (0) | 2019.01.30 |