Friday, October 11, 2013

Filter in Android for Search details

// in adapter class
public Filter getFilter()
    {
        if(vlfilter == null)
        {
            vlfilter = new ValueFilter();
        }
        // TODO Auto-generated method stub
        return vlfilter;
    }
  
    private class ValueFilter extends Filter
    {
        ArrayList<Restaurants> filterList;

        @Override
        protected FilterResults performFiltering(CharSequence constraint)
        {
            // TODO Auto-generated method stub
            FilterResults results = new FilterResults();

            if(constraint!=null && constraint.length()>0)
            {
                filterList=new ArrayList<Restaurants>();
                for(int i=0;i<fltrlst.size();i++)
                {
                    if(fltrlst.get(i).getTitle().toLowerCase().contains(constraint))
                    {
                        filterList.add(fltrlst.get(i));
                    }
                }
                results.count=filterList.size();
                results.values=filterList;
            }
            else
            {
                results.count=fltrlst.size();
                results.values=fltrlst;
            }
            return results;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void publishResults(CharSequence constraint,
                FilterResults results)
        {
            // TODO Auto-generated method stub
            lst =(ArrayList<Restaurants>) results.values;            
            notifyDataSetInvalidated();
        }
      
    }