listView多item布局设置

public class MyAdapter extends BaseAdapter {
   private ArrayList<News> list;
    private Context context;
    private final  int aType=0;
    private  final  int bType=1;
    private final  int sum_Type=2;


    public MyAdapter(ArrayList<News> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }
    /**
     * 多种布局回调方法
     */
    @Override
    public int getItemViewType(int position) {
        if(position%2==0){
            return aType;
        }else{
            return bType;
        }
    }

    @Override
    public int getViewTypeCount() {
        return sum_Type;//布局总数
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        int type = getItemViewType(i);
        ViewHolder1 holder1=null;
        ViewHolder2 holder2=null;
        if(view==null){

            switch(type){
                case aType:
                    view = View.inflate(context, R.layout.item1, null);
                    holder1=new ViewHolder1();
                    holder1.tv_title1=view.findViewById(R.id.tv_title1);
                    holder1.tv_date1=view.findViewById(R.id.tv_date1);
                    holder1.iv_img1=view.findViewById(R.id.iv_img1);

                    holder1.tv_title1.setText(list.get(i).getTitle());
                    holder1.tv_date1.setText(list.get(i).getDate());
                    ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder1.iv_img1);

                    view.setTag(holder1);
                    break;
                case bType:
                    view = View.inflate(context, R.layout.item2, null);
                    holder2=new ViewHolder2();
                    holder2.tv_title2=view.findViewById(R.id.tv_title2);
                    holder2.tv_date2=view.findViewById(R.id.tv_date2);
                    holder2.iv_img2=view.findViewById(R.id.iv_img2);

                    holder2.tv_title2.setText(list.get(i).getTitle());
                    holder2.tv_date2.setText(list.get(i).getDate());
                    ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder2.iv_img2);

                    view.setTag(holder2);
                    break;
            }

        }else{
            switch(type){
                case aType:
                    holder1= (ViewHolder1) view.getTag();

                    holder1.tv_title1.setText(list.get(i).getTitle());
                    holder1.tv_date1.setText(list.get(i).getDate());
                    ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder1.iv_img1);
                        break;
                case bType:
                    holder2= (ViewHolder2) view.getTag();
                    holder2.tv_title2.setText(list.get(i).getTitle());
                    holder2.tv_date2.setText(list.get(i).getDate());
                    ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder2.iv_img2);
                    break;
            }
        }




        return view;
    }

    class ViewHolder1{

        public TextView tv_title1;
        public TextView tv_date1;
        public ImageView iv_img1;
    }

    class ViewHolder2{

        public TextView tv_title2;
        public TextView tv_date2;
        public ImageView iv_img2;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值