今天在写一个应用的时候遇到一个问题,我要时时监听EditText中的内容的变化。在EditText没有找到一个setOnxxxx的方法。百度了一下,原来在EditText中有一个方法addTextChangedListner(TextWatcher watcher)方法,用他可以时时监听EditText的内容变化。TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:
当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。
et_pos.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {}
@Override
public void afterTextChanged(Editable s) {
if (s.length() != 0) {
clearPosition.setVisibility(View.VISIBLE);
}else {
clearPosition.setVisibility(View.INVISIBLE);
}
}
});