해당 프로젝트의 이전에 작성한 코드를 뷰바인딩으로 바꿔보겠습니다. 모듈 단위의 build.gradle에 뷰 바인딩을 선언하면, 레이아웃 XML 파일들의 이름 뒤에 Binding이 붙은 채로 클래스가 생성되게 됩니다. 우선 아래의 코드 처럼, 전역 변수로 binding을 선언하는데, 타입으로는 뷰 결합으로 생성된 ActivityMainBinding을 지정합니다. 그리고 binding에 layoutInflater로 뷰를 가져올 수 있도록 선언하고, view에는 binding.root를 선언합니다. binding.root는 바인딩이 가지는 프로퍼티인데 root를 통해서 어떤 뷰를 가지고 있는지 알게됩니다. 이로써 binding을 사용해 원하는 XML 뷰를 가져올 수 있습니다. private lateinit v..
findViewById를 매번 사용하여 뷰를 가져오는 경우, 뷰가 여러 개인 경우 관리 포인트가 많아지고 코드가 복잡해질 수 있습니다. 뷰 바인딩은 여러 뷰 객체들을 관리하고, 쉽게 가져올 수 있도록 도와주는 역할을 합니다. XML 레이아웃 파일에 정의된 뷰들을 바로 가져와 쓸 수 있어 매우 편리합니다. 기본적인 사용 방법은 우선, build.gradle의 모듈 단위에 아래와 같이 코드를 추가합니다. android { viewBinding { enabled = true } } 뷰 바인딩 사용 방법을 요약하자면 아래와 같습니다. 우선 setContentView(R.layout.activity_main) 처럼 설정된 부분을 뷰 결합을 통해서 바꿔줘야 합니다. 이렇게 함으로써, xml 객체를 binding에 ..
리스트뷰에서 자주 사용되는 뷰 홀더에 대해서 확인합니다. 어댑터의 전체적인 뷰를 그려주는 getView 메소드에서 뷰 홀더를 사용하여 뷰를 나타낼 수 있습니다. 뷰 홀더를 사용하는 이유는, findViewById로 필요한 뷰를 찾는 경우, 찾아야 하는 뷰가 많을 수록 그만큼 리소스가 많이 필요하고, 성능에 영향을 줄 수 있기 때문이라고 합니다. 우선 뷰홀더 클래스를 생성합니다. 앞으로는 뷰홀더에 사용할 뷰를 미리 담아놓고, 필요 시 불러와서 계속 써먹게 되는 원리입니다. null 값이 할당될 수 있도록 TextView? 타입으로 선언합니다. class ViewHolder{ var guestName: TextView? = null var waiting: TextView? = null } 다음은 어댑터 클래..
뷰를 액티비티로 어떻게 가져오는지 알아 봅시다. 안드로이드 스튜디오가 업그레이드 되면서 ViewBinding으로 뷰를 가져오는데, 여기서는 id로 직접 가져오거나 xml을 임포트해서 가져오는 방식을 설명할 것입니다. 먼저 activity_listener.xml 파일을 확인합니다. xml 파일에 위와 같이 뷰가 정의되어 있습니다. 다음에는 Listener.kt 파일을 확인합니다. package com.example.myapplication import android.os.Bundle import android.os.PersistableBundle import android.util.Log import android.view.View import android.widget.TextView import and..
- Total
- Today
- Yesterday
- findViewById
- notifyDataSetChanged
- 뷰 바인딩
- view binding
- android adapter
- 미제사건
- 2019년 사건사고
- 리사이클러뷰
- 상대적 레이아웃
- 메소드 오버라이딩
- Bmi Calculator
- addView
- 2007년 사건사고
- 애드뷰
- 탭레이아웃
- bmi 계산기 만들기
- 안드로이드 어댑터
- lazy init
- tabLayout
- 2021년 사건사고
- ToDo List 앱 만들기
- 선형 레이아웃
- 대한민국 미제사건
- 안드로이드 프로젝트
- 인텐트
- 자바스크립트 배열
- 리스트뷰
- 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 |