我有一个Activity,其顶部有一个Action Bar,带有Search View。
此外,我正在使用自定义列表视图,并希望从搜索视图中输入的关键字过滤应与列表视图项中的特定文本视图相关联。
实现textWatcher和过滤器适配器。 有什么问题?
@ Yahor10好吧我之前没遇到过。 你能指点我一个教程吗?
stackoverflow.com/questions/5780289/和androidhive.info/2012/09/
@ Yahor10非常感谢。 如果我有任何问题,我会调查并回来
@ Yahor10谢谢。 因为我正在使用Actionbar Sherlock - 任何想法如何从lib编写搜索视图的过滤器
请参阅sherlock库示例中的CollapsibleActionItem.java示例。 然后从菜单中获取ActionView并过滤它
在您的onQueryTextChange(String Text)方法中使用Listener:
。adapter.getFilter()滤波器(Text.toString()); 并在BaseAdapter类中实现您的过滤器。
这是示例代码:
@Override
public Filter getFilter()
{
return filter;
}
private GameFilter filter;
private class GameFilter extends Filter
{
public GameFilter() { }
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults oReturn = new FilterResults();
ArrayList results = new ArrayList();
if (orig == null)
orig = itemDetailsrrayList;
if (constraint != null)
{
if (orig != null && orig.size() > 0) {
for (ItemDetails g : orig) {
if (g.getName().toLowerCase().contains(constraint.toString().toLowerCase()))
results.add(g);
}
}
oReturn.values = results;
}
return oReturn;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results)
{
itemDetailsrrayList = (ArrayList)results.values;
notifyDataSetChanged();
}
}