xlistview的多条目展示

//xlistview的适配器

public class MyAdapter extends BaseAdapter {

    private Context context;//上下文

    private List<News.Result.Data> list;

    public static final int a=0;//第一种类型

    public static final int b=1;//第二种类型

//有参构造

    public MyAdapter(Context context, List<News.Result.Data> list){

        super();

        this.context=context;

        this.list=list;

    }

    @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(list.get(position).author_name.equals("环球网")){

//                return a;

//        }

        //判断奇偶数

        if(position%2==0){

                return a;

        }else{

            return b;

        }

    }

    @Override

    public int getViewTypeCount() {

//类型的总数

        return 2;

    }

 

    @Override

    public View getView(int i, View view, ViewGroup viewGroup) {

        ViewHolderOne holderOne=null;

        ViewHolderTwo holderTwo=null;

        int type=getItemViewType(i);

        if(view==null){

            switch (type){

                case a:

                    holderOne=new ViewHolderOne();

                    view=View.inflate(context, R.layout.itemone,null);

                    holderOne.author_name=view.findViewById(R.id.author_name);

                    holderOne.title=view.findViewById(R.id.title);

                    holderOne.imageone=view.findViewById(R.id.imageone);

 

                    holderOne.author_name.setText(list.get(i).author_name);

                    holderOne.title.setText(list.get(i).title);

                    ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s02,holderOne.imageone);

                    view.setTag(holderOne);

                    break;

                case b:

                    holderTwo=new ViewHolderTwo();

                    view=View.inflate(context, R.layout.itemtwo,null);

                    holderTwo.nametwo=view.findViewById(R.id.nametwo);

                    holderTwo.titletwo=view.findViewById(R.id.titletwo);

                    holderTwo.imagetwo=view.findViewById(R.id.imagetwo);

 

                    holderTwo.nametwo.setText(list.get(i).author_name);

                    holderTwo.titletwo.setText(list.get(i).title);

                    ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s02,holderTwo.imagetwo);

                    view.setTag(holderTwo);

                    break;

            }

        }else{

            switch (type){

                case a:

                    holderOne= (ViewHolderOne) view.getTag();

                    holderOne.author_name.setText(list.get(i).author_name);

                    holderOne.title.setText(list.get(i).title);

                    ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s02,holderOne.imageone);

                    break;

                case b:

                    holderTwo= (ViewHolderTwo) view.getTag();

                    holderTwo.nametwo.setText(list.get(i).author_name);

                    holderTwo.titletwo.setText(list.get(i).title);

                    ImageLoader.getInstance().displayImage(list.get(i).thumbnail_pic_s02,holderTwo.imagetwo);

                    break;

            }

        }

        return view;

    }

//第一种类型的内部类

    class ViewHolderOne{

        public TextView title,author_name;

        public ImageView imageone;

    }

//第二种类型的内部类

    class ViewHolderTwo{

        public TextView titletwo,nametwo;

        public ImageView imagetwo;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值