J'utilise ma méthode "searching" pour filtrer les données dans le recyclerView en fonction des modifications de l'entrée EditText, cela fonctionne bien mais lorsque le texte est supprimé (partiellement), rien n'est filtré.
Ma méthode de recherche :
//a method to filter the question list search
private void searching(){
search.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int il, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
for (int iterator = 0; iterator < filterForSearch.size(); iterator++) {
//if what i searched have a part of question title - do not filter else filter
if (!filterForSearch.get(iterator).get("title").toString().contains(search.getText().toString()) ){
filterForSearch.remove(iterator);
}
}
//set the adapter with the data that the user searched
setQuestionsAdapter(filterForSearch);
filterForSearch = cloudData;
}
@Override
public void afterTextChanged(Editable editable) {
// when the user delete his search - show him the questions again
if(search.getText().toString().equals("")){
pullData();
}
}
});
}