发布时间:2025-12-09 14:09:28 浏览次数:3
常用的EditText,是否有时也会让你疑惑不解。遇到问题还是先冷静思考,说白了问题大同小异,但实际都是深层次的基础没掌握好。
addTextChangedListener()是TextView的方法,EditText继承自TextView,当然也有这个方法。
从官方的介绍可知,添加了TextWatcher后,每当TextView的文本改变时,TextWatcher的那几个方法就会被调用。
另外一句,是关于在afterTextChanged(Editable s)中setTest()的一些问题,也就是在监测”改变后”状态的方法又去改变那个文本,这样想想都容易出问题,不是我目前关心的内容,所以忽略。
之前记录的一些空间基本用法,其中包含 EditText基本属性介绍
它那几个方法,分别监测了文本”改变前”、”改变时”、”改变中”三种状态。
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 方法做逻辑判断以及请求服务器数据,动态添加数据
还有在请求数据的时候,加载提示框,会对输入监听造成影响。建议在输入请求数据的时候,把该请求的加载去掉。
欢迎留言交流,书到用时方恨少,纸上得来终觉浅。共勉!