我一直在实现一个类,该类扩展了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();
}
但这根本不会用我收到的数据“填充”我的列表。 所以现在我的问题是如何用收到的结果填充我的列表?我是否必须以编程方式执行此操作?
答案 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));
对我而言,这是让它运转的唯一方法......遗憾的是网上没有非常简洁的例子......