Я хочу отфильтровать свой listView
с помощью поля EditText
и с помощью функции адаптера getFilter()
. Это работает просто отлично, пока я не поставлю пробел в текстовом поле.
Редактировать: SimpleAdapter, а не ArrayAdapter
Если мой список содержит следующие слова: {"Apple", "Banana", "Red Apple"}
Если я наберу «яблоко», он вернет все элементы, содержащие слово «яблоко» (Apple и Red Apple).
Если я наберу «яблоко», оно ничего не вернет.
Есть идеи? Вот код:
searchBox = (EditText) findViewById(R.id.searchBox);
searchBox.addTextChangedListener(filterTextWatcher);
и
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());
}
};