我们有时会有这样的需求,就是能够时刻监听EditText的文字变化,即改变了一个字符都能够监听。
实现如下:
在activity中为EditText添加监听,
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//TODO:
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//TODO:
}
@Override
public void afterTextChanged(Editable s) {
//TODO:
}
});
在相应的TODO处添加需要执行的操作即可。
此外,根据我的使用经验,这个监听事件能够为我们提供了多种UI的呈现方式:
比如针对某一个EditText,只有用户输入了,用户才能够点按同一个页面内的按钮控件,如:
et_feedback.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!"".equals(s.toString())) {
btn_commit.setClickable(true);//按钮可点击
btn_commit.setBackgroundResource(R.drawable.btn_login);//颜色变亮,提示用户能够点按
} else {
btn_commit.setClickable(false);//按钮不可点击
btn_commit.setBackgroundColor(0xffdddddd);//颜色变暗<span style="font-family: Arial, Helvetica, sans-serif;">,提示用户能够点按</span>
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
这种实现方式仅供大家参考,更多的实现方式等待大家的发现...