Пользовательский фильтр Android не покажет мне результаты - PullRequest
0 голосов
/ 07 июня 2010

Я реализую класс, который расширяет ArrayAdapter и реализует Filterable. Часть фильтрации (в методе executeFiltering ()), кажется, идет хорошо, она заполняет объект FilterResults так, как и ожидалось. Но тогда я думаю, что неправильно делаю то, как публиковать результаты, у меня есть:

protected void publishResults(CharSequence prefix, FilterResults results) 
  {
    // NOTE: this function is *always* called from the UI thread.
     subItems =  (Vector)results.values;
     notifyDataSetChanged();

  }

Но это просто не "заполнит" мой Список полученными данными. Итак, теперь мой вопрос: как мне заполнить свой список полученными результатами? Должен ли я делать это программно?

Ответы [ 2 ]

1 голос
/ 08 июня 2010

На самом деле, я работал со следующим фрагментом кода:

subItems =  (Vector<serverContentElement>)results.values;

notifyDataSetChanged();
clear();
for(int i = 0; i < subItems.size(); i++)
   add(subItems.get(i));

Для меня это был единственный способ заставить его работать ... Просто позор, что не очень краткие примерысеть ...

1 голос
/ 08 июня 2010

У меня была такая же проблема.Постарайтесь быть более агрессивным:

protected void publishResults(CharSequence prefix, FilterResults results) 
  {
    // NOTE: this function is *always* called from the UI thread.
     subItems.clear();
     subItems.addAll((Vector<T>)results.values);
     notifyDataSetChanged();

  }

Очевидно, я предполагаю, что ваш «результат» содержит правильные данные

Этот подход решил мою проблему

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