自定义ListView显示项

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值