自定义ListView显示项

来源:互联网 发布:ubuntu怎么安装wine 编辑:程序博客网 时间:2024/06/05 02:20
public class PriceAdapter extends BaseAdapter {    Map gasPrice;//加油站价格    Map price;//省控基准油价    Context contxt;    ArrayList<String> price_num_list;    ArrayList<String> gas_num_list;    String oil_num;//油号    String oil_price;//油价    public PriceAdapter(Context context, Map gasPrice, Map price) {        this.gasPrice = gasPrice;        this.price = price;        this.contxt = context;       price_num_list = getList(price);        gas_num_list = getList(gasPrice);    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        Map map;        ArrayList<String> oil_num_list;        if(position == 0){            TextView tv = new TextView(contxt);            tv.setTextColor(Color.WHITE);            tv.setBackgroundColor(Color.GRAY);            tv.setText("加油站价格:");            return tv;        }        else if(position ==(gas_num_list.size() + 1))        {            TextView tv = new TextView(contxt);            tv.setTextColor(Color.WHITE);            tv.setBackgroundColor(Color.GRAY);            tv.setText("省控基准油价:");            return tv;        }        else if(position <= gas_num_list.size())        {            map = gasPrice;            oil_num_list = gas_num_list;            int newposition = position - 1;            oil_num = oil_num_list.get(newposition);            oil_price = map.get(oil_num).toString();        }        else        {           map = price;            oil_num_list = price_num_list;            int newposition = position - 1 - gas_num_list.size() - 1;            oil_num = oil_num_list.get(newposition);            oil_price = map.get(oil_num).toString();        }        View inview;        ViewHolder viewHolder;        if(convertView != null && convertView instanceof LinearLayout)        {// 需要检查是否为空,还要判断是否是合适的类型去复用,因为convertView 有可能是TextView  如果不检查会报空值            inview = convertView;            viewHolder = (ViewHolder) inview.getTag();        }        else        {            inview = LayoutInflater.from(contxt).inflate(R.layout.lv_price, null);;            viewHolder = new ViewHolder();            viewHolder.tv_lv_price_name = (TextView) inview.findViewById(R.id.tv_lv_price_name);            viewHolder.tv_lv_price_price = (TextView) inview.findViewById(R.id.tv_lv_price_price);            inview.setTag(viewHolder);        }               viewHolder.tv_lv_price_name.setText(oil_num);       viewHolder.tv_lv_price_price.setText(oil_price);        return inview;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public int getCount() {        return gas_num_list.size() + 1 + price_num_list.size() + 1;    }    class ViewHolder {        TextView tv_lv_price_name;        TextView tv_lv_price_price;    }    public ArrayList<String> getList(Map<String,String> map){        ArrayList<String> list = new ArrayList();        Set set = map.keySet();        Iterator<String> iterator = set.iterator();        while (iterator.hasNext())        {            String temp = iterator.next();            list.add(temp);        }        return list;    }}

做一个笔记方便以后自己复习使用


0 0
原创粉丝点击