일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Gradle
- relay
- Coroutines
- pandas
- Codeforces
- AWS
- TEST
- activity
- android
- MyVoca
- livedata
- 백준
- ProGuard
- architecture
- Coroutine
- Hilt
- MiTweet
- textfield
- androidStudio
- 암호학
- GitHub
- boj
- Python
- Rxjava
- Kotlin
- 프로그래머스
- Compose
- 코루틴
- 쿠링
- 코드포스
- 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) { } 고작 이거 하나 때문에 일주일 동안 고..