object Converters2 {
//DB에서 꺼낼 때
@TypeConverter
@JvmStatic
fun fromString(value:String):ArrayList<ArrayList<String>> {
val listType = object: TypeToken<ArrayList<ArrayList<String>>>() {}.getType()
return Gson().fromJson(value, listType)
}
//DB에 저장할 때
@TypeConverter
@JvmStatic
fun fromArrayList(list:ArrayList<ArrayList<String>>) : String {
val gson = Gson()
val json = gson.toJson(list)
return json
}
}
이렇게 코드를 짜긴 했는데,
ArrayList<ArrayList<String>>
이 부분이 잘 작동 하려나 모르겠네요.
이제 거의 막바지라, 하이라이트 기능 만들고 있는데, 이게 여태한 것 중에
제일 어려운것 같아요... 각 장마다 일일이 다 저장해야 하니까, 페이지도 엄청난데...
DB로 꺼냈다 넣었다하면 오래걸릴까봐, 2차원 배열로 꺼내서 변수에 담아놓고 참조하다가,
작업 다 마치면, 2차원 배열로 다시 DB에 저장하려고 하거든요.
아니면, 3차원 배열로 할까 생각중이에요. 2차원은 별로 효과 없을것 같아서..
[장0..n] [하이라이트, 절, 기타등등0..3] [절0...n]
이게 좀 복잡한게, onBindViewHolder()에서
SparseBooleanArray(0)
얘랑 또 엮어서 뷰 속성 중복 안되게 해줘야 하고, 많이 어려운것 같아요.
또, 리사이클러뷰 어댑터 초기화 시켜줄때, DB에서 정보 꺼내와야 하는데, 이게 또 타이밍이 서로 안맞습니다.. DB에서 정보 꺼내오는 동안에, 이미 리사이클러뷰는 초기화 된 후니까요, 인덱스0 사이즈0 오류나기 일수고요... 그래서 메인액티비티에서 3차원 배열에 미리 넣어놓고, 리딩액티비티로 전달해서 초기화시키고 뭐하고, 하려구요. 아... 너무 복잡해요...
규모가 너무 크니까, 하기 전에 미리 조언좀 얻으려고 여쭤봤습니다.
그래서
//pause()때에 저장해주거나, 뒤로가기키를 누르면 저장해주거나,
하이라이트 키를 누를때에 저장해주거나 하려고요.
Room DB는 pause()때에 저장해주기는 어려울까요?
스마트폰 전원 꺼질때 해봤는데, 저용량에서는 잘 작동 되더라구요.
근데 용량 큰것도 가능한가 싶어서요.
코딩 방법을 어떻게 할까 고민이네요...