안드로이드

[Kotlin/Android] EditText View 와 data binding : editText의 실시간 변화하는 text를 캐치해서 viewModel에서 사용하기.

란서 2022. 1. 24. 12:01

data binding 사용 시,

 

EditText를 생성하고, 실제 app에서 유저가 글을 쓸 때, 해당 글을 실시간으로 파악해서 viewModel의 프로퍼티로 초기화하는 방법.

 

<EditText> tag 내에 onnTextChanged attr을 사용해보자.

onTextChanged attr

 

해당 view는 viewModel과 데이터 바인딩 된 상태이다. EditText가 가진 onTextChanged 속성은 EditText의 text가 변경될 때 마다 호출되는 함수인가봄. 따라서 해당 함수의 인자로 람다식 함수를 넣어주고, 람다식 함수의 내용을 viewModel에서 구현해주면 된다.

단, onTextChanged의 매개변수 (s:CharSequence, start: Int, before:Int. count:Int) 는 맞춰줘야 한다.

 

viewModel에서 람다식 {} 에 쓰일 함수를 구현해주는 모습.

이렇게 하면 완성.

 

 

android:onTextChanged="@{(s,start,before,count)-> 취할 액션을 viewModel을 통해 구현.}"