当我们在输入框输入一些文字,输入完成后,可以根据些文字来进行查询等操作。有一个提升逼格的技巧就是我们每输入一个文字会动态的显示结果。应用场景:归属地查询,我们输入电话号码,点击查询,显示归属地。在这里我们可以在每输入一个数字就进行一次归属地结果的显示,达到动态显示的效果。实现:为EditText设置一个addTextChangedListener监听,传一个TextWatch的对象并实现里面的抽象方法,每当输入框的文字变化,就会触发这些方法。下面的代码中etNumbelongto是一个EditText控件,为它设置addTextChangedListener监听。
<span style="white-space:pre"> </span>etNumbelongto = (EditText) findViewById(R.id.et_numbelongto);
// 监听EditText变化,可以动态的显示归属地
etNumbelongto.addTextChangedListener(new TextWatcher() {
// 文字发生变化时调用
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (s.toString().length() >= 3) {
query(s.toString());
}
}
// 文字发生变化前调用
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
// 文字发生变化后调用
@Override
public void afterTextChanged(Editable s) {
}
});