2 回答
TA贡献1804条经验 获得超3个赞
它保持可见,因为searchusersedittext在该调用中始终为非null(如果为null,则对的早期调用searchusersedittext.addTextChangedListener将失败,并带有NullPointerException),因此,一旦您键入任何内容,它每次都只会进入第一种情况(保持可见)。
也searchusersedittext.equals("")不会检查EditText中是否有空条目,因为它searchusersedittext是一个EditText对象,而不是输入的字符串。即使没有输入任何文本,EditText对象仍然存在。
尝试这样的事情:
@Override
public void afterTextChanged(Editable s) {
String txt = searchusersedittext.getText().toString();
// or String txt = s.toString();
if( !txt.isEmpty() ) {
recyclerViews.setVisibility(View.VISIBLE);
filter(txt);
}
else {
recyclerViews.setVisibility(View.INVISIBLE);
}
}
TA贡献1786条经验 获得超13个赞
private Timer timer;
TextWatcher searchTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// do your actual work here
}
}, 600);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (timer != null) {
timer.cancel();
}
}};
添加回答
举报