1. ホーム
  2. android

[解決済み] Android TextWatcher.afterTextChanged vs TextWatcher.onTextChanged

2022-08-07 16:26:36

質問

どのような状況で afterTextChanged の代わりに onTextChanged を使うか、その逆は?

どのように解決するのですか?

これらのイベントは、以下の順序で呼び出されます。

  1. beforeTextChanged(CharSequence s, int start, int count, int after) .

    これは、文字が何らかの新しいテキストに置き換えられるところであることを意味します。 テキストは編集不可能です。

    使用します。 これから変更される古いテキストを見る必要があるとき。

  2. onTextChanged(CharSequence s, int start, int before, int count) .

    変更が行われ、いくつかの文字が置き換えられただけです。 テキストは編集不可です。

    使用します。 は、テキスト中のどの文字が新しいかを確認する必要がある場合に使用します。

  3. afterTextChanged(Editable s) .

    上記と同じですが、今度は のテキストは編集可能です。 .

    使用する。 新しいテキストを見たり、編集したりする必要がある場合。

もし私が EditText の変更を監視するだけなら、最初の 2 つのメソッドを使用する必要はまったくないでしょう。3番目のメソッドで新しい値を受け取り、必要であれば新しいテキストを修正するだけです。しかし、もし私が値に起こる正確な変化を追跡しなければならないのであれば、最初の2つのメソッドを使うでしょう。また、変更を聞いた後にテキストを編集する必要がある場合は、3番目の方法で行います。