2015年3月28日 星期六

ItemFilter

package suntone.lfo.com.suntonehelper.adapter;

import android.content.Context;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.Filter;

import com.lfo.suntone.db.Stock;

import java.util.ArrayList;
import java.util.List;

import suntone.lfo.com.suntonehelper.tool.Utils;
import suntone.lfo.com.suntonehelper.tool.WarehouseTool;

/**
 * Created by user on 2015/3/28.
 */

//not used
public class ItemFilter extends Filter {
    private  List<Stock> list;
    private BaseAdapter baseAdapter;
   // private  View view;
    public ItemFilter(BaseAdapter baseAdapter, List<Stock> list){
       // this.view=view;
        this.list=list;
        this.baseAdapter=baseAdapter;
    }
    private  FilterResults results ;
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        //List<String> stringlist = WarehouseTool.instance.toNameList(list);
        if(results==null){
             results = new FilterResults();
        }
        if(constraint==null){
            results.values=list;
            results.count=list.size();
            return results;
        }
        if(constraint.length() ==0){
            results.values=list;
            results.count=list.size();
            return results;
        }
        //Utils.instance.log("constraint:"+String.valueOf(constraint));

        List<Stock> returnlist= new  ArrayList<Stock>();

        for(Stock stock:list){
            if(stock.getStocktype().getName().startsWith(String.valueOf(constraint))){
returnlist.add(stock);
            }
        }
        //List<String> returnstringlist = WarehouseTool.instance.toNameList(returnlist);
        results.values=returnlist;
        results.count=returnlist.size();


        return results;
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        // Now we have to inform the adapter about the new list filtered
        if(results.count==0){
            baseAdapter.notifyDataSetInvalidated();
        }else{
            baseAdapter.notifyDataSetChanged();
        }


    }

    @Override
    public CharSequence convertResultToString(Object resultValue) {
        if (resultValue==null){
            return "沒有名稱";
        }
        Stock s = (Stock) resultValue;
        return s.getStocktype().getName();
    }
}

沒有留言:

張貼留言