はじめに
今回はEditText内の文字が入力された時に動きを加えたいと思い、今回の方法を調べました
↓の記事を参考にしました
LiveData
↑の記事を参考にしましたが、それをLiveDataの中で使えるようにしました
今回はEditText内の文字が入力、削除されたことを検知し動きを加えたかったので
対象のEditTextに
android:afterTextChanged="@{viewModel.EditTextChanged}"
この一文を加え、DataBindingで指定しているViewModelに
EditTextChanged()という関数を作りました
fun EditTextChanged(editable: Editable) {}
あとはこの{}に文字が入力、削除された時にやりたい処理を追加するだけです
終わりに
今回は文字の変更された事を検知したかったのでXML内で
afterTextChanged
をつかいましたが、
参考にした↑の記事内にもある
beforeTextChanged(文字の変更前に呼ばれる)
onTextChanged(文字の変更中に呼ばれる)
この二つもそれぞれLiveDataを使ったXML内で使えるので状況に応じてうまく利用できればいいなと思います
その時にはそれぞれViewModelで呼び出すときの引数の違いに気をつけたいところですね!