为了账号安全,请及时绑定邮箱和手机立即绑定

Android TextWatcher.afterTextChanged与TextWatcher

Android TextWatcher.afterTextChanged与TextWatcher

蝴蝶不菲 2019-10-17 10:50:09
在什么情况下我应该使用afterTextChanged,onTextChanged反之亦然?
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

这些事件按以下顺序调用:

  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,则根本不需要使用前两种方法。我只会在第三种方法中收到新值,并在需要时更正新文本。但是,如果必须跟踪发生在值上的确切更改,则可以使用前两种方法。如果在聆听更改后还需要编辑文本,则可以使用第三种方法。


查看完整回答
反对 回复 2019-10-17
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

Android Textwatcher 是一种在输入字段的文本更改时调用的触发器。


afterTextChanged (Editable s)-更改文本后将调用此方法。因为您所做的任何更改都将导致递归再次调用此方法,所以您必须注意此处执行操作,否则可能导致无限循环。


onTextChanged (CharSequence s, int start, int before, int count)-调用此方法来通知您,在s内,以start开头的计数字符刚刚替换了以前具有长度的旧文本。尝试通过此回调对进行更改是错误的。


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 2200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信