6월, 2020의 게시물 표시

Android RecyclerView item 개수 확인하기

이미지
사용 버전: Android Studio 4.0 사용 언어: Kotlin 1.3.72 ​ 안드로이드 RecyclerView item 개수 확인하기를 알아보겠습니다. 아이템 개수를 확인하여 보이는 페이지를 조정할 때 사용합니다. ​ viewModel.LiveData 이름.observe(viewLifecycleOwner, Observer {     it.isNotEmpty() // 빈 화면이 아니라는 뜻.     it.size // 내용물 개수를 나타냅니다. } ​ 끝. 카테고리: Android

Android 현재 Fragment id 확인하기

이미지
사용 버전: Android Studio 4.0 사용 언어: Kotlin 1.3.72 ​ 안드로이드 현재 Fragment id 확인하기를 알아보겠습니다. Navigation을 사용할 때, 현재 무슨 Fragment를 화면에 보여주고 있는지 확인하는 방법입니다. ​ NavHostFragment.findNavController(Host 이름).currentDestination!!.id 끝. 카테고리: Android

Android RecyclerView 사용하기

이미지
사용 버전: Android Studio 4.0 사용 언어: Kotlin 1.3.72 ​ 안드로이드 RecyclerView 사용하기를 알아보겠습니다. RecyclerView는 ScrollView와 유사하지만 화면에서 벗어난 부분을 계산하지 않는 점과 벗어난 부분의 화면이 새롭게 생기는 부분에 다시 사용된다는 점이 다릅니다. ScrollView는 모든 부분을 계산하지만, RecyclerView는 보이는 부분만 계산합니다. 즉, 최적화가 돼있습니다. ​ RecyclerView의 경우 database와 연동을 많이 합니다. https://shwoghk14.blogspot.com/2020/06/android-room-database-1.html RecyclerView Library입니다. https://developer.android.com/jetpack/androidx/releases/recyclerview app 용 build.gradle의 dependencies에 아래를 추가합니다. Sync now를 누릅니다. scrollView가 사용되는 곳을 RecyclerView로 교체합니다. ScrollView 안에 있던 textView는 필요 없습니다. RecyclerView에서 구현할 것이기 때문이죠. ​ ​ ​ 그리고 코드로 가서 layoutManager를 추가합니다. Linear 모드와 Grid 모드, StaggerdGrid 모드가 있습니다. ​ ​ ​ ​ RecyclerView에 사용될 item layout을 만듭니다. layout 우 클릭 - New - Layout Resource File을 누릅니다.

Android Room Database 사용하기 2

이미지
사용 버전: Android Studio 4.0 사용 언어: Kotlin 1.3.72 ​ 안드로이드 Room Database 사용하기 2를 알아보겠습니다. ​ 안드로이드 Room Database 사용하기 1에 이어서 진행하겠습니다. 이번에는 Coroutines를 사용합니다. Coroutines는 thread를 하나 더 만들어서 Main thread를 멈추지 않고 작업을 진행합니다. ​ 1에서 만든 ViewModel을 다음과 같이 수정합니다. 여기서는 AndroidViewModel을 사용하여 Application 값도 받을 수 있게 해줍니다. 그리고 ViewModelFactory를 만듭니다. https://shwoghk14.blogspot.com/2020/06/android-viewmodelfactory.html FirstFragmentViewModelFactory를 만들었습니다. 아래와 같이 수정합니다. Fragment에 다음을 추가합니다. viewModel로 갑니다. 아래를 추가합니다. Job은 coroutines를 관리합니다. uiScope는 어떤 thread에서 실행할 것인지를 정합니다. 여기서는 Main thread에서 작동합니다. uiScope.launch는 coroutine을 시작한다는 뜻입니다. suspend는 coroutine에서만 불러와집니다. withContext가 완료될 때까지 기다립니다. withContext는 실행된 coroutine을 Dispatchers.IO로 옮깁니다. - Dispatchers.Main은 UI와 연관된 작업을 할 때 사용 - Dispatchers.IO는 파일의 입출력 작업을 할 때 사용 - Dispatchers.Default

Android Room Database 사용하기 1

이미지
사용 버전: Android Studio 4.0 사용 언어: Kotlin 1.3.72 ​ 안드로이드 Room Database 사용하기 1을 알아보겠습니다. 안드로이드 Room은 안드로이드에서 SQLite Database를 사용하기 위한 Library입니다. ​ 먼저, Fragment https://shwoghk14.blogspot.com/2020/06/android-fragment.html ViewModel을 만듭니다. https://shwoghk14.blogspot.com/2020/06/android-viewmodel.html 현재 상태입니다. Room Library를 사용합니다. https://developer.android.com/topic/libraries/architecture/room app 용 build.gradle에 아래를 추가합니다. 39 번 줄의 내용을 위처럼 kapt로 변경해 줍니다. Sync now를 누릅니다. ​ ​ 그리고 Database를 만듭니다. database를 저장할 package를 만든 뒤, New - Kotlin File/Class를 누릅니다. 데이터 베이스를 담을 Class 이름을 적습니다. 내용을 아래와 같이 적습니다. Entity는 database 테이블을 만듭니다. tableName 옵션은 테이블의 이름을 나타냅니다.  PrimaryKey는 중복되지 않는 값을 나타냅니다. autoGenerate 옵션은 자동 생성 기능입니다. 나머지 속성들은 ColumnInfo를 사용해서 나타냅니다. name 옵션은 열의 이름을 나타냅니다. ​ ​ D