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) {
}