본문 바로가기

내일배움캠프 (스파르타 코딩 클럽) 안드로이드 2기37

코드 MVC -> MVVM 전환 트러블 슈팅 트러블 슈팅 : 처음 있었던 문제: 초기화 문제 : lateinit을 by lazy로 바꾸어 주니까 해결 invoke method 문제 : 라이브 데이터 초기값 넣어줌으로써 해결 리포지토리에 있는 값을 넘겨 오는데 한템포 지연되는 문제 : 아직 해결 못함. 멀티 뷰타입에 있는 값이 업데이트가 안되는 문제 : submit 리스트 위치 확인하면서 해결 멀티 뷰타입 안에있는 리사이클러뷰가 업데이트 안되는 문제 : adapter notify해줘야함. -> notify 해줬는데 [java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling] 에러가 뜸. -> 백그라운드 스레드로.. 2024. 3. 10.
listAdapter 아이템이 update될 때 깜빡이는 이쓔 문제점: 산 리스트에서 다른 산의 정보를 보려고 클릭할 때 화면에서 리스트가 깜빡거리는 문제 시도 및 해결법: - 아이템이 같은지 확인하는 부분을 산 이름 값을 넣어 수정 DiffUtil의 areItemsTheSame의 아이템이 같은지 확인하는 부분에서 다른 아이템이 들어왔다고 인식을 해서 해당 부분의 값을 현재 있는 산 이름과 같은지 확인하는 것으로 해결 - itemAnimator를 null로 초기화 기본적으로 적용되어 있는 애니메이션을 비활성화해 깜빡거리지 않도록 하여 해결 느낀점 : 리스트 어댑터 사용방법을 살짝 잊고 있었는데 다시 보니 리스트 어댑터 사용 방법을 완전히 익힐 수 있었다. 2024. 3. 8.
룸 디비 연결 후에 나타난 에러 트러블 슈팅 과정 1. 첫 오류 챗봇 프래그먼트로 이동 자체가 안되는 이쓔가 있었다. java.lang.ClassCastException: android.app.Application cannot be cast to com.mit.offroader.ui.fragment.chatbot.ChatBotApplication // ChatBotFragment: private val chatBotViewModel: ChatBotViewModel by viewModels { ChatBotViewModelFactory((requireActivity().application as ChatBotApplication).repository) } // ChatBotApplication: package com.mit.offroader.ui.frag.. 2024. 3. 7.
코틀린| MVVM & 파이어스토어 데이터베이스에서 데이터 가져오기 MVVM 패턴은 뷰 - 뷰모델 - 모델 - 디비 순으로 연결이 되기 때문에 리포지토리에서 파이어스토어 디비랑 연결을 해주었다. // Repository.kt class Repository { private val db: FirebaseFirestore = FirebaseFirestore.getInstance() init { Log.d(TAG, "init 함수") initPush(0) } fun initPush(index: Int) { Log.d(TAG, "initPush 함수 여기에서 데이터베이스에 있는 값 접근") val sanArrayList: ArrayList = arrayListOf() db.collection("sanlist").get().addOnSuccessListener { document.. 2024. 3. 6.