Tengo un ListView
y un EditText
. Implemento addTextChangedListener
en EditText
a filtro contenido ListView
.Cómo mostrar "Sin resultados" en ListView filtrable?
leftList.setTextFilterEnabled(true);
et_search.addTextChangedListener(filterTextWatcher);
y luego el TextWatcher
es:
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (watcherAdapter==null) {
return;
}
watcherAdapter.getFilter().filter(s);
Log.e(TAG, "OnTextChange: " + s + " start: " + start +
" before: " + before + " count: " + count + " adapter: " +
watcherAdapter.getCount());
}
};
Estado:
- tengo 10 artículos en
ListView
.
Pregunta:
- La primera vez que escribe el primer carácter, ¿por qué los rendimientos
watcherAdapter.getCount()
10
(como inicial) enListVie
w en lugar del resultado devuelto filtro cuentan? ElwatcherAdapter.getCount(
) parece a-clic tarde para el resultado mostrado enListView
. - ¿Cómo logro mostrar
"No Result"
enListView
cuando no hay resultados de coincidencia mientras escribo en elEditText
?
La única solución que utilizo al fin es hacer mi filtro de búsqueda personalizada .... Dividir las palabras, ellos tokenizes, y si se hace corresponder ponerlo en matriz como adaptador a la lista. Y funciona como yo quiero. – rxlky