自定义过滤Android将不会显示结果

时间:2010-06-07 14:55:34

标签: android listview filter

我一直在实现一个类,该类扩展了ArrayAdapter并实现了Filterable。 过滤部分(在performFiltering方法()中)似乎没问题,它按预期填充FilterResults对象。 但后来我认为我没有正确地发布结果,我有:

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

  }

但这根本不会用我收到的数据“填充”我的列表。 所以现在我的问题是如何用收到的结果填充我的列表?我是否必须以编程方式执行此操作?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 尝试更具侵略性:

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();

  }

显然,我假设您的“结果”对象包含正确的数据

这种方法解决了我的问题

答案 1 :(得分:1)

实际上我让它使用下一段代码:

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

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

对我而言,这是让它运转的唯一方法......遗憾的是网上没有非常简洁的例子......

相关问题