package com.mp3sdk.activities.adapters; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; import com.mtunemp3sdk.mp3downloader.R; public class SearchSuggestAdapter extends BaseAdapter implements Filterable { @SuppressWarnings("unused") private Context context = null; private List<String> datas = new ArrayList<String>(); private LayoutInflater inflater = null; private Filter mFilter = null; public SearchSuggestAdapter(Context context, List<String> datas) { super(); this.context = context; this.datas = datas; this.inflater = LayoutInflater.from(context); } public void setData(ArrayList<String> data) { if (data != null) { this.datas = data; } } @Override public int getCount() { // TODO Auto-generated method stub return datas.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub if (position >= 0 && position < datas.size()) { return datas.get(position); } return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View v, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = new ViewHolder(); if (v == null) { v = inflater.inflate(R.layout.suggestion_list_item, null); holder.keywordTv = (TextView) v.findViewById(R.id.itemTitle); v.setTag(holder); } else { holder = (ViewHolder) v.getTag(); } holder.keywordTv.setText(datas.get(position)); return v; } private class ViewHolder { TextView keywordTv = null; } @Override public Filter getFilter() { // TODO Auto-generated method stub if (mFilter == null) { mFilter = new MyFilter(); } return mFilter; } private class MyFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence constraint) { // TODO Auto-generated method stub FilterResults results = new FilterResults(); Log.i("tag", "mOriginalValues.size=" + datas.size()); ArrayList<String> list = new ArrayList<String>(datas); results.values = list; results.count = list.size(); return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { // TODO Auto-generated method stub if (results.count > 0) { notifyDataSetChanged(); } else { notifyDataSetInvalidated(); } } } }