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();
}
}};
添加回答
舉報