2012-11-27 230 views
4

我有一个活动,其顶部带有一个搜索视图。 此外,我正在使用自定义列表视图,并希望从搜索视图中输入的关键词过滤应与列表视图项目中的特定文本视图相关联。Android SearchView筛选器列表视图

enter image description here

+0

执行textWatcher和过滤器适配器。什么问题? – Yahor10

+0

@ Yahor10好吧,我以前没有遇到过它。你能指点我一个教程吗? –

+1

http://stackoverflow.com/questions/5780289/filtering-listview-with-custom-object-adapter and http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/ – Yahor10

回答

2
在onQueryTextChange(字符串文本)监听器使用方法

: 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<ItemDetails> results = new ArrayList<ItemDetails>(); 
        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<ItemDetails>)results.values; 
        notifyDataSetChanged(); 
       } 
      }