TextWatcher in Androidプログラミングについて読んでいた。afterTextChanged()
とonTextChanged()
の違いを理解できなかった。
TextWatcherのonTextChanged、beforeTextChanged、afterTextChangedの違い を参照しましたが、onTextChanged()
ではなくafterTextChanged()
を使用する必要がある状況についてはまだ考えられません。
これについての説明はAndroid Dev Portal
http://developer.Android.com/reference/Android/text/TextWatcher.html
**abstract void afterTextChanged(Editable s)**
This method is called to notify you that, somewhere within s, the text has been changed.
**abstract void beforeTextChanged(CharSequence s, int start, int count, int after)**
This method is called to notify you that, within s, the count characters beginning at start are about to be replaced by new text with length after.
**abstract void onTextChanged(CharSequence s, int start, int before, int count)**
This method is called to notify you that, within s, the count characters beginning at start have just replaced old text that had length before.
したがって、2つの違いは次のとおりです。
afterTextChanged
を使用してテキストをchangeできますが、onTextChanged
ではできませんコメントするのに十分な評判がないので、Pratik Dasaの答えとコメントに@SimpleGuyとの議論に何かを追加するだけです。
3つのメソッドは、EditText.setText("your string here")
によってもトリガーされます。この場合、長さは16(この場合)になるため、count
は常に1
。
パラメーターリストは、3つの方法で同じではないことに注意してください。
abstract void afterTextChanged(Editable s)
abstract void beforeTextChanged(CharSequence s, int start, int count, int after)
abstract void onTextChanged(CharSequence s, int start, int before, int count)
そして、これがafterTextChanged
とonTextChanged
:パラメータの違いです。
このスレッドで受け入れられている答えもご覧ください: Android TextWatcher.afterTextChanged vs TextWatcher.onTextChanged