自定义适配器Adapter

BaseAdapter:是所有适配器类的父类,可以对列表项进行最大限度的定制
public class MyBaseAdapter extends BaseAdapter{
public class ViewHolder{
ImageView image;
TextView title;
TextView author;
TextView price;
TextView publish;
TextView remark;
}

    //布局解析器
    private LayoutInflater inflater;

    public MyBaseAdapter(LayoutInflater inflater) {
        this.inflater = inflater;
    }

    //BaseAdapter中需要重写的方法
    @Override
    public int getCount() {//获得数据的总条数
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return data.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    ViewHolder viewHolder = new ViewHolder();
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //项资源   父组件
        //可见的视图	  convertView被覆盖的视图
        View v = convertView;

        //减少视图的创建
        if(v == null){
//解析项资源
            v = inflater.inflate(R.layout.listview_item,null);
//可见的视图的所有控件
            viewHolder.image = v.findViewById(R.id.iv_listviewitem_image);
            viewHolder.title = v.findViewById(R.id.tv_listviewitme_title);
            viewHolder.author = v.findViewById(R.id.tv_listviewitme_author);
            viewHolder.price = v.findViewById(R.id.tv_listviewitme_price);
            viewHolder.publish = v.findViewById(R.id.tv_listviewitme_publish);
            viewHolder.remark = v.findViewById(R.id.tv_listviewitme_remark);
            
//保存控件
            v.setTag(viewHolder);

        }
        ViewHolder viewHolder = (ViewHolder) v.getTag();

        //给控件设置值
        Book book = data.get(position);
        viewHolder.image.setImageResource(book.getImage());
        viewHolder.title.setText(book.getTitle());
        viewHolder.author.setText(book.getAuthor());
        viewHolder.price.setText(book.getPrice()+"");//float转换成string
        viewHolder.publish.setText(book.getPublish());
        viewHolder.remark.setText(book.getRemark());

        //返回视图
        return v;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值