TextWatcher在什么时候会调用?
extWatcher在edittext内容发生变化时会被调用
TextWatcher一共有三个方法:
beforeTextChanged方法在文本变化前调用,start代表开始变化的位置,count代表变化的字符长度.after代表变化后字符该位置字符数量
public void beforeTextChanged(CharSequence s, int start, int count, int after)
onTextChanged方法在文本变化时调用,此时s的内容已发生改变,start代表开始变化的位置,before代表变化前该位置字符数量,count代表变化了的字符长度
public void onTextChanged(CharSequence s, int start, int before, int count)
afterTextChanged方法在文本变化后调用,s即为变化后的文本结果
public void afterTextChanged(Editable s)
DEMO:
这个demo主要是监控ID为zipcode这个输入框,当输入的string.length()>=10的时候,访问webservice接口来获取的数据的例子。
zipcode.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
System.out.println("输入文字中的状态,count是输入字符数");
System.out.println(zipcode.getText());
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
System.out.println("====>onTextChanged");
}
@Override
public void afterTextChanged(Editable s) {
System.out.println("====>afterTextChanged =="+s);
if (s.length()>=10) {
System.out.println("通过webservice获取相关的数据!");
}
}
});