常用的EditText,是否有时也会让你疑惑不解。遇到问题还是先冷静思考,说白了问题大同小异,但实际都是深层次的基础没掌握好。
addTextChangedListener()是TextView的方法,EditText继承自TextView,当然也有这个方法。
从官方的介绍可知,添加了TextWatcher后,每当TextView的文本改变时,TextWatcher的那几个方法就会被调用。
另外一句,是关于在 afterTextChanged (Editable s)
中setTest()的一些问题,也就是在监测”改变后”状态的方法又去改变那个文本,这样想想都容易出问题,不是我目前关心的内容,所以忽略。
之前记录的一些空间基本用法,其中包含 EditText基本属性介绍
关于TextWatcher那几个方法的解释
它那几个方法,分别监测了文本”改变前”、”改变时”、”改变中”三种状态。
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//这个方法被调用,说明在s字符串中,从start位置开始的count个字符即将被长度为after的新文本所取代。
// 在这个方法里面改变s,会报错。
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//这个方法被调用,说明在s字符串中,从start位置开始的count个字符刚刚取代了长度为before的旧文本。
// 在这个方法里面改变s,会报错。
}
@Override
public void afterTextChanged(Editable s) {
//这个方法被调用,那么说明s字符串的某个地方已经被改变。
}
});
在onTextChanged 方法做逻辑判断以及请求服务器数据,动态添加数据
还有在请求数据的时候,加载提示框,会对输入监听造成影响。建议在输入请求数据的时候,把该请求的加载去掉。
欢迎留言交流,书到用时方恨少,纸上得来终觉浅。共勉!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115025.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...