![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Vm6Zr/btrbrTDCdwF/9IoyhKJl07uu1d4wWTK3e1/img.jpg)
1. 업무 삭제 기능 먼저, 삭제 기능을 담당하는 함수를 정의합니다. 업무 추가 기능과 마찬가지로 notifyDataSetChanged( )를 사용해 변동 사항을 어댑터로 보내야 합니다. 삭제를 담당하는 기능은 remove 메소드를 통해서 이루어집니다. private fun deleteTodo(todo: Todo){ data.remove(todo) binding.recyclerView.adapter?.notifyDataSetChanged() } 어댑터 부분의 인자로 리턴값이 없는 함수를 넣어줍니다. val onClickDeleteIcon:(todo: Todo) -> Unit) 처럼, 아이콘 클릭 시 업무 삭제를 의미하는 '표면적인' 함수를 어댑터 인자로 넣어줍니다. 당연히 리턴값이 없으므로 Unit 타입..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/lqx7z/btrbyIARGak/b28YuyuzX3DpGO08edctI1/img.jpg)
뷰 모델 클래스를 사용할 때, 함께 사용할 수 있는 좋은 기능이 라이브 데이터입니다. 라이브 데이터는 관찰 가능한 데이터를 담아두는 클래스입니다. 쉽게 말해, 데이터를 지켜보고 있다가 변경이 되면, 화면을 다시 그려줄 수 있도록 도와줍니다. 먼저 라이브 데이터의 기본적인 구성을 알아 봅시다. 라이브 데이터의 객체를 만드는 방법은 다음과 같습니다. currentName 변수는 라이브 데이터를 식별하는 역할을 합니다. class NameViewModel : ViewModel() { val currentName: MutableLiveData by lazy { MutableLiveData() } ** 뷰 모델 클래스 내용 ** } 이제 액티비티에 정의된 함수 부분을 살펴 봅니다. nameObserver 부분이 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/BhZnb/btrbxqUqkqM/j7GScIeXP5kcNK9LeZpAG0/img.jpg)
해당 프로젝트의 이전에 작성한 코드를 뷰바인딩으로 바꿔보겠습니다. 모듈 단위의 build.gradle에 뷰 바인딩을 선언하면, 레이아웃 XML 파일들의 이름 뒤에 Binding이 붙은 채로 클래스가 생성되게 됩니다. 우선 아래의 코드 처럼, 전역 변수로 binding을 선언하는데, 타입으로는 뷰 결합으로 생성된 ActivityMainBinding을 지정합니다. 그리고 binding에 layoutInflater로 뷰를 가져올 수 있도록 선언하고, view에는 binding.root를 선언합니다. binding.root는 바인딩이 가지는 프로퍼티인데 root를 통해서 어떤 뷰를 가지고 있는지 알게됩니다. 이로써 binding을 사용해 원하는 XML 뷰를 가져올 수 있습니다. private lateinit v..
- Total
- Today
- Yesterday
- 안드로이드 프로젝트
- 애드뷰
- notifyDataSetChanged
- 인텐트
- 안드로이드 앱 만들기
- 자바스크립트 배열
- 안드로이드 어댑터
- 선형 레이아웃
- 2019년 사건사고
- view binding
- addView
- 상대적 레이아웃
- Bmi Calculator
- android adapter
- ToDo List 앱 만들기
- 리스트뷰
- RecyclerView
- 안드로이드 스튜디오 에러
- bmi 계산기 만들기
- 리사이클러뷰
- 탭레이아웃
- 2007년 사건사고
- lazy init
- 미제사건
- findViewById
- 메소드 오버라이딩
- tabLayout
- 대한민국 미제사건
- 뷰 바인딩
- 2021년 사건사고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |