回憶一下ListView多條目

其他的我就不發了 就發一下adapter適配器渲染 其實Listview和Recylerview的適配器渲染區別不大 可以說是一樣的

 private List<ContentBean.Data> list;
    private Context context;
    private final int TT_ITEM=0;
    private final int GN_ITEM=1;
    private final int ITEM_COUNT=2;//條目類型數量

    public ContentAdapter(Context context) {
        this.context = context;
        list=new ArrayList<>();
    }

    public void setList(List<ContentBean.Data> list) {
        this.list = list;
        notifyDataSetChanged();
    }

    @Override
    public int getViewTypeCount() {
        return ITEM_COUNT;
    }

    //判斷是哪種類型的條目
    @Override
    public int getItemViewType(int position) {
        return getItem(position).isTt()?TT_ITEM:GN_ITEM;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public ContentBean.Data getItem(int position) {
        return list.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView==null){
            convertView=LayoutInflater.from(context).inflate(getItem(position).isTt()?R.layout.tt_item:R.layout.gn_item,parent,false);
            holder=new ViewHolder(convertView);
        }else{
            holder= (ViewHolder) convertView.getTag();
        }
        holder.bind(getItem(position));
        return convertView;
    }
    //寄存器
    class ViewHolder{
        TextView title;
        TextView date;
        ImageView icon;
        public ViewHolder(View convertView){
            title=convertView.findViewById(R.id.title);
            date=convertView.findViewById(R.id.date);
            icon=convertView.findViewById(R.id.icon);
            convertView.setTag(this);
        }
        public void bind(ContentBean.Data data){
            title.setText(data.getTitle());
            date.setText(data.getDate());
            if(icon!=null){
                icon.setImageResource(R.mipmap.ic_launcher);
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章