반응형
ListViewItem으로 정의된 리스트뷰 아이템 배열을 저장하는 SharedPreferences 함수 만들기
1.
gradle에 gson 추가해주고
implementation 'com.google.code.gson:gson:2.8.5'
2.
값 저장하는 함수
fun setStringArrayPref(key: String, values: ArrayList<ListViewItem>) {
val gson = Gson()
val json = gson.toJson(values)
val prefs = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE)
val editor = prefs.edit()
editor.putString(key, json)
editor.apply()
}
3.
저장한 값 불러오는 함수
fun getStringArrayPref(key: String): ArrayList<ListViewItem> {
val prefs = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE)
val json = prefs.getString(key, null)
val gson = Gson()
val storedData: ArrayList<ListViewItem> = gson.fromJson(json,
object : TypeToken<ArrayList<ListViewItem?>>() {}.type
)
return storedData
}
TEST 코드
val workoutData = getStringArrayPref("listData")
if(workoutData.size > 0){
for(i in 0 until workoutData.size)
Log.d("TAG", workoutData[i].workoutName.toString())
}
반응형
'IT > Android' 카테고리의 다른 글
Kotlin] 안드로이드 뷰 확대하기, 늘리기 // Pinch zoom (0) | 2021.03.18 |
---|---|
Kotlin] 안드로이드 뷰 눌러서 이동하기n] 안드로이드 뷰 눌러서 이동하기 // view MotionEvent (0) | 2021.03.18 |
kotlin] 안드로이드 Custom Listview 만들기 (0) | 2021.03.14 |
Kotlin] notifyDataSetChanged() 안될때 (0) | 2021.03.08 |
안드로이드 스튜디오] animateCamera, moveCamera 차이 (0) | 2021.02.05 |
댓글