TextWatcher

TextWatcher

/**
 * 在View改变之前执行,好比你输入了字符,系统先统计你输入的信息,在这里可以提前获取你的动机。
 * @param s 控件改变之前的字符 刚开始就是空字符串
 * @param start 输入前光标所在位置或删除后光标所在位置,刚开始0,增加字符是(改变之前的位置) --删除字符是改变之后的位置
 * @param count 删除的字符的长度,增加的时候一直是0
 * @param after  改变的字符串的长度(重新输入的字符串的长度) 删除的时候一直是0
 */
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
/**
 * 在View改变之后短时间内执行,也就是区别afterTextChanged();的一直执行状态,他只调用一次。我们做自己的操作一般在这里
 * @param s 替换的字符
 * @param start 输入前光标所在位置或删除后光标所在位置,刚开始0,增加字符是(改变之前的位置) --删除字符是改变之后的位置
 * @param before 删除的字符串长度 增加的时候一直是0
 * @param count 替换(重新输入)字符的长度,删除时一直是0
 */
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    Log.e(TAG, "键盘输入:"+s+"  开始位置:"+start+" count:"+count+" before:"+before);
}
/**
 * 只要字符串发生改变就会调用此方法,切记在此方法内再改变字符串(会陷入死循环)
 * @param s 字符串
 */
@Override
public void afterTextChanged(Editable s) {
}
发布了62 篇原创文章 · 获赞 45 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/parade0393/article/details/103872797