适配器 多条目加载

本文介绍如何通过自定义BaseAdapter实现ListView中不同类型的布局显示,包括判断视图类型的逻辑及inflate不同布局的方法。
需要使用两个方法: 
多条目的类型 getItemViewType()  类型的数量 getViewTypeCount()

/**
 * Created by dell on 2017/12/9.
 */

public class MyAdapter extends BaseAdapter {
    Context context;
    List<MyBean.ResultsBean> list;

    public MyAdapter(Context context, List<MyBean.ResultsBean> list) {
        this.context = context;
        this.list = list;
    }

  @Override
    public int getItemViewType(int position) {

//判断图片
 /*
     String pic = list.get(position).getThumbnail_pic_s02();
     if (TextUtils.isEmpty(pic)){
        //一张图片的
        return 0;
     }else{
       //三张图片的
         return 1;
     }*/
 
 List<String> images = list.get(position).getImages(); if (null!=images&&!"".equals(images)){ if(images.size()==1){ return 1; } } return 0; } @Override public int getViewTypeCount() { return 2; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int b = getItemViewType(i); if (b==0){ if (view==null){ view=View.inflate(context,R.layout.rement_xlistview_item,null); } TextView item1_tv1 = (TextView) view.findViewById(R.id.item1_tv1); TextView item1_tv2 = (TextView) view.findViewById(R.id.item1_tv2); item1_tv1.setText(list.get(i).getDesc()); item1_tv2.setText(list.get(i).getCreatedAt()); return view; }else if (b==1){ view=View.inflate(context,R.layout.remen_xlistview_item2,null); } TextView item2_tv1 = (TextView) view.findViewById(R.id.item2_tv1); TextView item2_tv2 = (TextView) view.findViewById(R.id.item2_tv2); ImageView item2_img = (ImageView) view.findViewById(R.id.item2_img); item2_tv1.setText(list.get(0).getDesc()); item2_tv2.setText(list.get(0).getCreatedAt()); ImageLoader.getInstance().displayImage(list.get(i).getImages().get(0),item2_img); return view; }}















                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值