自定义适配器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;
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_41277773/article/details/82789064
今日推荐