Chcę odfiltrować mój listView
przy użyciu pudełka EditText
i korzystając z funkcji adaptera getFilter()
. Działa dobrze, dopóki nie wstawię spacji w polu tekstowym.Filtr dla Androida ListView - Przestrzeń znaków
Edit: To SimpleAdapter nie ArrayAdapter
Jeśli moja lista zawiera te słowa: { "Apple", "Banan", "Red Apple"} Gdybym typu "jabłko" zwróci wszystkie elementy zawierające słowo "jabłko" (Apple i czerwone jabłko). Jeśli napiszę "jabłko", to nie zwróci nic.
Wszelkie pomysły? Oto kod:
searchBox = (EditText) findViewById(R.id.searchBox);
searchBox.addTextChangedListener(filterTextWatcher);
i
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());
}
};
Czy kiedykolwiek wymyśliłeś ten jeden? –
Nie przepraszam. Myślę, że rozwiązaniem może być stworzenie własnego adaptera opartego na ArrayAdapter, ale nie próbowałem (przestałem pracować nad tym projektem). – Chris911
@CaptainProg Jakiego rodzaju odpowiedzi szukasz? Z pierwotnym pytaniem postawionym przy użyciu 'trim()' jest najlepszą odpowiedzią. – Sam