Просмотр списка фильтров Android с правкой - PullRequest
0 голосов
/ 14 марта 2012

У меня есть список с продуктами в нем. Я переопределяю метод tostring продуктов:

    @Override
    public String toString() {
        return this.getNaam();
    }

Я добавляю addTextChangedListener к моему EditText.

tvZoek.addTextChangedListener(new TextWatcher() {               
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            adapter.getFilter().filter(s.toString().toLowerCase());             
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
        }
        public void afterTextChanged(Editable s) {
        }
});

Когда я выполняю поиск, список фильтруется. Но, например, если я ищу «Био» и в списке 5 товаров с «Био» в их названии, то отображаются первые 5 продуктов в списке, а не 5 продуктов с «Био» в их названии.

Я не переопределил метод getFilter() в адаптере.

Как мне показать правильные продукты? (Я работаю с ArrayAdapter)

1 Ответ

1 голос
/ 14 марта 2012

попробуйте следующее.

  public void onTextChanged(CharSequence s, int start, int before, int count) {
                    updateList(s.toString);             
                }


public void updateList(String filter) {

List<> tempList = new ArrayLsit<>();

int yourListSize = myList.count();
for (int i = 0; i < myListSize; i++) {
if (filter != null) {
   if (myList.get(i).contains(filter)) {
    tempList.add(myList.get(i));
  }
 }
}

// create adapter using tempList
// setAdapter

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...