//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;
}
}