Quiero filtrar mi listView
usando una caja EditText
y usando la función del adaptador getFilter()
. Funciona bien hasta que coloque un carácter de espacio en el cuadro de texto.Filtro para android ListView - Space Character
Editar: Es una SimpleAdapter no ArrayAdapter
Si mi lista contiene estas palabras: { "Apple", "Banana", "Red Apple"} Si escribo "manzana" se volverá toda la elementos que contienen la palabra manzana en él (manzana y manzana roja). Si escribo "apple" no devolverá nada.
¿Alguna idea? Aquí está el código:
searchBox = (EditText) findViewById(R.id.searchBox);
searchBox.addTextChangedListener(filterTextWatcher);
y
private TextWatcher filterTextWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
myAdapter.getFilter().filter(s.toString());
}
};
¿Alguna vez descubrió esto? –
No lo siento. Creo que la solución podría ser hacer tu propio adaptador basado en un ArrayAdapter, pero no lo intenté (dejé de trabajar en ese proyecto). – Chris911
@CaptainProg ¿Qué tipo de respuesta estás buscando? Con la pregunta original planteada con 'trim()' es la mejor respuesta. – Sam