androidのkotlinで EditTextが表示する文字列が
変更されたときに、処理を実行するようなListenerを追加するメソッドは
なんだったでしょうか?
↓
AndroidのKotlinで`EditText`の表示する文字列が
変更されたときに処理を実行するためのリスナーを追加するには、
`addTextChangedListener`メソッドを使用します。
このメソッドは、`TextWatcher`を引数に取ります。
`TextWatcher`には次の3つのコールバックメソッドがあります。
1. `beforeTextChanged`:テキストが変更される前の状態。
2. `onTextChanged`:テキストが変更される際に呼び出される。
3. `afterTextChanged`:テキストが変更された後に呼び出される。
以下はサンプルコードです:
```kotlin
val editText: EditText = findViewById(R.id.editText)
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(
s: CharSequence?, start: Int,
count: Int, after: Int) {
// テキスト変更前に実行される処理
}
override fun onTextChanged(
s: CharSequence?, start: Int,
before: Int, count: Int) {
// テキスト変更中に実行される処理
}
override fun afterTextChanged(s: Editable?) {
// テキスト変更後に実行される処理
println("Text changed to: ${s.toString()}")
}
})
```
### 簡略化された記述
Kotlinでは`addTextChangedListener`の拡張関数を使用して
簡略化することもできます:
```kotlin
editText.addTextChangedListener {
afterTextChanged { s ->
println("Text changed to: ${s.toString()}")
}
}
```
これで、`EditText`のテキスト変更を検知して処理を実行できます。
コメント
コメントを投稿