일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- Python
- TEST
- Codeforces
- GitHub
- Gradle
- Rxjava
- androidStudio
- Hilt
- 코루틴
- architecture
- livedata
- 코드포스
- textfield
- relay
- AWS
- MiTweet
- MyVoca
- android
- Compose
- activity
- boj
- 암호학
- Coroutine
- Coroutines
- pandas
- 쿠링
- Kotlin
- 백준
- ProGuard
- Today
- Total
목록Primary/Android (80)
이동식 저장소
원인 메인 스레드 이외의 스레드에서는 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) { } 고작 이거 하나 때문에 일주일 동안 고..
이 글은 Android Kotlin Fundamentals를 참고하여 작성되었습니다. Activity의 lifecycle Android Activity의 lifecycle을 정리해 본다. onCreate Activity가 처음 생성될 때 호출된다. onStart Activity가 화면에 처음 보이게 될 때(visible) 호출된다. onRestart Activity가 화면에 다시 보이게 될 때 호출된다. onResume Activity가 focus를 잡게 될 때 호출된다. 사용자는 focus를 잡은 Activity만 조작할 수 있다. 여러 앱을 동시에 띄우면 여러 개의 Activity가 focus를 잡을 수도 있다. Focus와 visible의 차이를 잘 기억하자. onPause Activity가 foc..
이 글은 Google의 Android Kotlin Fundamentals를 참고하여 작성되었습니다. Fragment 간의 이동은 Navigation을 이용하여 정의하는 것이 좋다. 물론 onClick 등의 콜백을 사용할 수도 있지만, Navigation을 사용하면 조건부 이동, 이전 화면으로 돌아가는 등의 액션을 더 쉽게 관리할 수 있다. Navigation 라이브러리 사용 Android navigation library를 사용하려면 module-level build.gradle 파일에 다음을 추가해야 한다. implementation "androidx.navigation:navigation-fragment-ktx:2.3.3" implementation "androidx.navigation:navigat..
중요: 커스텀 뷰가 안 보이면 ``attachToParent``를 ``true``로 설정해 보자. ``ViewBinding``의 ``inflate()`` 메소드는 세 개의 매개변수를 받는다. ``inflater``: ``LayoutInflater`` ``parent``: 뷰를 붙일 ``ViewGroup``. 사용하는 뷰(액티비티, 프래그먼트, 커스텀 뷰 등)에 따라 다른 값을 사용한다. ``attachToParent``: ``Boolean`` 값. 이 글에서 살펴볼 매개변수는 ``attachToParent``이다. 사실 마이트윗에서 ``ViewBinding``으로 바꾸고 나니 어떤 뷰가 계속 안 보이길래 2시간 동안 삽질했는데, ``attachToParent``를 ``false``에서 ``true``로 ..