先介绍TextWatcherTextWatcher fieldValidatorTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {//表示最终内容
Log.d("afterTextChanged", s.toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start/*开始的位置*/, int count/*被改变的旧内容数*/, int after/*改变后的内容数量*/) {
//这里的s表示改变之前的内容,通常start和count组合,可以在s中读取本次改变字段中被改变的内容。而after表示改变后新的内容的数量。
}
@Override
public void onTextChanged(CharSequence s, int start/*开始位置*/, int before/*改变前的内容数量*/, int count/*新增数*/) {
//这里的s表示改变之后的内容,通常start和count组合,可以在s中读取本次改变字段中新的内容。而before表示被改变的内容的数量。
}
};使用 :
mEditStatus.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) {
}
@Override
public void afterTextChanged(Editable s) {
int count = 140 - mEditStatus.length();
mTextCount.setText(Integer.toString(count));
mTextCount.setTextColor(Color.GREEN);
if (count < 10)
mTextCount.setTextColor(Color.YELLOW);
else if (count < 0)
mTextCount.setTextColor(Color.RED);
}
});
本文介绍如何使用TextWatcher接口监听EditText中的文本变化,并实现字符计数功能。通过beforeTextChanged、onTextChanged及afterTextChanged方法,可以实时获取文本变化的细节。
86

被折叠的 条评论
为什么被折叠?



