Android54 [Android] Paging3에서 아이템 삭제하기 + 로딩 처리 [Android] Paging3, 스크롤 시 로딩 화면 추가하기 [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면 ogyong.tistory.com 저번에 했던 스크롤 시 로딩 화면을 추가하는 것에 이어서 Paging3에서 아이템을 삭제하고, 삭제가 처리되는 동안 로딩 화면을 띄우는 것을 해보려고 한다. Room 삭제 쿼리 추가 @Dao interface SampleDao { ... /** * 아이템 삭제 */ @Query("DELETE FROM sample W.. Android/Paging3 2023. 1. 19. [Android] Paging3, 스크롤 시 로딩 화면 추가하기 [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 ogyong.tistory.com 저번에 Paging3를 이용해서 리스트를 그려봤다. 여기에 추가로 스크롤을 해서 다음 페이지를 호출할 때 로딩 화면을 그려보려고 한다. Paging3 라이브러리는 LoadState 클래스를 통해 데이터의 로드 상태를 추적할 수 있다. 그리고 로드 상태가 변경되면 LoadState 값을 자동으로 알림 받는 LoadStateAdapter가 존재한다. .. Android/Paging3 2023. 1. 18. [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 ogyong.tistory.com 이전에 기기에 저장된 데이터를 RecyclerView와 Room을 사용해서 페이징 작업을 한 적이 있었다. 이번에는 Paging3 라이브러리를 사용해서 기기에 저장된 데이터를 표시해보려고 한다. (삭제 기능은 다음에..) 참고로 Paging3는 Android Paging Basics codelab과 Android Paging Advanced cod.. Android/Paging3 2023. 1. 16. [Android] Duplicate class androidx.lifecycle ··· // Room 의존성 추가 implementation "androidx.room:room-runtime:2.4.3" kapt "androidx.room:room-compiler:2.4.3" // paging implementation "androidx.paging:paging-runtime-ktx:3.1.1" Room과 Paging3을 사용하기 위해 gradle 파일에 의존성을 추가하고 실행을 했는데, Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.5.1- runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.1) and lifecycle-viewmodel.. Android/이슈 처리 2023. 1. 9. [Android] Android Studio에서 쿼리 실행하기 Android Studio 하단 탭에 있는 App Inspection 또는 상단 탭의 View > Tool Windows > App Inspection을 클릭해서 Database Inspector을 띄운다. Database Inspectore에서 빨간색 박스로 표시해둔 아이콘을 선택하면 New Query 탭이 열리는데 여기에 쿼리를 작성할 수 있다. 주황색 박스로 데이터베이스를 선택하고 쿼리를 작성했다면 Run 버튼을 눌러서 쿼리를 실행하면 된다. 왼쪽의 테이블을 더블클릭하면 해당 테이블의 데이터를 보여준다. 새로고침 버튼을 클릭해서 업데이트된 내용을 확인하면 된다. Android/Room 2023. 1. 9. [Android] RecyclerView에서 페이징+삭제 처리하기 (with Room) #2 [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 도달했을 때를 감지하여 로딩 화면을 띄우 ogyong.tistory.com 저번에 RecyclerView에서 문자열 배열이 저장된 파일을 이용해 페이징 처리를 해봤는데, 이번에는 실제로 Room에 저장된 데이터의 페이징과 삭제 처리를 해보려고 한다. RecyclerView 페이징 예제 예제에서 Room, ViewModel, LiveData, Coroutine, ViewBinding을 사용한다. 1부터 30까지의 값을 Room을 이용해서 기기에 저장한다. (데이터 저장은 별.. Android/RecyclerView 2023. 1. 9. [Android] Could not find method kapt() for arguments ··· Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method kapt() for arguments [androidx.room:room-compiler:2.4.3] on object of type org․gradle․api․internal․artifacts․dsl.dependencies.DefaultDependencyHandler. build.gradle에서 kapt 관련 의존성을 추가하고 sync를 했을 때 에러가 발생했다. 원인은 kotlin-kapt을 plugins에 추가하지 않아서였다. plugins { id 'com.android.appli.. Android/이슈 처리 2023. 1. 6. [Android] USB 디버깅이 계속 끊길 때 작업 관리자를 보면 adb.exe가 Android Studio에서 실행되거나 백그라운드 프로세스에서 실행되는데, adb가 종료와 실행을 반복하고 있었다. 이럴 때 안드로이드 스튜디오를 실행하지 않고 Shell에서 adb를 먼저 실행시켜 주면 디버깅이 해제되지 않는다. Windows PowerShell을 열고 'adb start-server'를 입력하여 Windows PoswerShell에서 adb가 실행되도록 한다. 아래 이미지처럼 설정이 되었을 때 디버깅이 끊기지 않았다. 처음에는 안드로이드 스튜디오를 먼저 실행하고 'adb kill-server'을 사용해서 안드로이드 스튜디오의 adb를 종료시켰다. 그 뒤에 Shell에서 adb를 실행시켰는데 잘 동작할 때도 있었지만, 안드로이드 스튜디오와 Shell.. Android/ADB 2022. 12. 30. [Android] Could not resolve all files for configuration ':app:debugCompileClasspath'. Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath'. 에러가 발생했는데, build.gradle(Project) 파일에 jcenter() 를 추가하여 해결했다. repositories { google() jcenter() mavenCentral() } Android/이슈 처리 2022. 12. 26. [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 도달했을 때를 감지하여 로딩 화면을 띄우고 다음 페이지를 호출하는 것이다. RecyclerView는 스크롤 상태와 리스트의 포지션에 대한 정보를 알려주는 addOnScrollListener 메서드를 제공한다. addOnScrollListener를 이용해서 페이징 처리를 해보려고 한다. RecyclerView 페이징 예제 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번 총 3페이지가 있다고 .. Android/RecyclerView 2022. 12. 16. [Android] DrawerLayout으로 Side Navigation 구현하기 DrawerLayout은 자식 레이아웃 중 하나를 펼치고 접는 기능을 하게 해주는 레이아웃이다. 자식 레이아웃 중 하나에 layout_gravity 속성을 start(left)나 end(right)를 부여하는 것으로 DrawerLayout을 쓸 수 있다. 단, layout_gravity 속성을 가진 자식 레이아웃은 하나여야 하고 layout_height은 match_parent가 되어야 한다. (그렇지 않으면 런타임 에러가 발생한다.) drawer로 사용하기 위해 layout_gravity 속성을 지닌 자식 레이아웃 이외에 여러 개를 선언해 봤는데 화면에는 마지막에 작성된 레이아웃만 보였다. DrawerLayout을 사용할 때 drawer로 표시할 레이아웃 하나와 메인 콘텐츠를 보여줄 레이아웃까지 해서 .. Android/DrawerLayout 2022. 12. 15. [Android] MQTT + SSL + MQTTX 사용해보기 [Android] MQTT + MQTTX 사용해보기 안드로이드에서 MQTT 통신을 하는 방법은 아래와 같다. 1. org.eclipse.paho:org.eclipse.paho.client.mqttv3에서 제공하는 MqttClient 클래스 사용 2. org.eclipse.paho:org.eclipse.paho.android.service에서 제공하는 MqttAndroidCli ogyong.tistory.com 지난번에 SSL 인증 없이 MQTT를 사용해 봤는데, 이번에는 SSL 인증을 추가적으로 해보려고 한다. (이미 인증서를 가지고 있다고 가정) eclipse에서 MQTT 통신을 하도록 제공하는 클래스는 사용하지 않으려 한다. Android 12 버전부터 오류가 발생하는데, 이 부분을 해결한 hanne.. Android/MQTT 2022. 12. 9. 이전 1 2 3 4 5 다음