일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- relay
- architecture
- AWS
- ProGuard
- Hilt
- GitHub
- Kotlin
- 프로그래머스
- android
- Coroutine
- 쿠링
- boj
- 코루틴
- Compose
- Gradle
- MiTweet
- textfield
- 코드포스
- MyVoca
- androidStudio
- 암호학
- Coroutines
- 백준
- TEST
- activity
- Codeforces
- Rxjava
- Python
- pandas
- livedata
- Today
- Total
목록livedata (3)
이동식 저장소

ListAdapterAndroid에서 여러 개의 항목을 보여줘야 할 때는 거의 RecyclerView를 사용한다. RecyclerView에 데이터를 제공하는 방법은 여러 가지가 있는데, 최근에 ListAdapter를 알게 되어 MyVoca에 적용해 보았다. 참고: DiffUtil and data binding with RecyclerView - Codelabs for Android Kotlin Fundamentals (Google) 기존 RecyclerView.Adapter는 리스트가 변경될 때마다 notify... 메소드를 실행해줘야 값이 제대로 보인다. 그런데 데이터의 삽입, 삭제, 수정 등 상황마다 실행해야 하는 메소드가 달라서 (솔직히) 귀찮다. 그래서 궁극의 ..
원인 메인 스레드 이외의 스레드에서는 MutableLiveData의 value를 할당할 수 없다. 해결 방법 postValue() 메소드를 사용하면 된다. 참 쉽죠? fun loadData = viewModelScope.launch(Dispatchers.IO) { ... mutableLiveData.postValue(newValue) ... }
문제 상황 Transformations.map(liveData)를 이용하여 새로운 LiveData를 선언하였지만, 제대로 변환되지 않는 문제가 있다. 문제 원인 반환된 LiveData를 observe하는 뷰가 없기 때문이다. Transformations는 반환된 LiveData가 observe될 때에만 변환을 수행한다. 해결 방법 Fragment 등에서 해당 LiveData를 observe하면 된다. 가장 단순한 방법으로는 listener를 비워 놓으면 된다. // QuizFragment.onCreateView()에서 quizViewModel.quizAvailable.observe(viewLifecycleOwner) { } 고작 이거 하나 때문에 일주일 동안 고..