티스토리 뷰

반응형

Retrofit에서 값을 받아온 뒤,  data class에 처리를 하는데 data class의 값을 SharedPreference에 저장할 수 없을까 하다가 찾게되었다.

 

 

GsonBuilder로 Json 값을 data class에서 가져와 저장하면 된다.

 

// User data class
data class User(val name: String = "", val gender: String = "")

 

class PreferenceManager(context : Context) {

    private val pref = PreferenceManager.getDefaultSharedPreferences(context)

	// Json에서 data class 값으로 변환
    fun getUserInfo(key: String) : User = GsonBuilder().create().fromJson(pref.getString(key, null), User::class.java)

	// Json으로 변환한 후에 저장
    fun setUserInfo(key : String, user : User) = pref.edit().putString(key, GsonBuilder().create().toJson(user, User::class.java)).commit()
}
반응형
댓글