3 回答
![?](http://img1.sycdn.imooc.com/54586425000103f602200220-100-100.jpg)
TA贡献1821条经验 获得超4个赞
这些事件按以下顺序调用:
beforeTextChanged(CharSequence s,int start,int count,int after)。
这意味着这些字符将被一些新文本替换。文本不可编辑。
使用:当您需要查看将要更改的旧文本时。onTextChanged(CharSequence s,int start,int before,int count)。
进行了更改,某些字符刚刚被替换。文本不可编辑。
使用:当您需要查看文本中的哪些字符是新字符时。afterTextChanged(Editable s)。
与上面相同,但是现在文本是可编辑的。
使用:当您需要查看并可能编辑新文本时。
如果我只是在听的更改EditText
,则根本不需要使用前两种方法。我只会在第三种方法中收到新值,并在需要时更正新文本。但是,如果必须跟踪发生在值上的确切更改,则可以使用前两种方法。如果在聆听更改后还需要编辑文本,则可以使用第三种方法。
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
TA贡献1794条经验 获得超8个赞
Android Textwatcher 是一种在输入字段的文本更改时调用的触发器。
afterTextChanged (Editable s)-更改文本后将调用此方法。因为您所做的任何更改都将导致递归再次调用此方法,所以您必须注意此处执行操作,否则可能导致无限循环。
onTextChanged (CharSequence s, int start, int before, int count)-调用此方法来通知您,在s内,以start开头的计数字符刚刚替换了以前具有长度的旧文本。尝试通过此回调对进行更改是错误的。
- 3 回答
- 0 关注
- 2200 浏览
添加回答
举报