package com.bw.moreitemshow.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bw.moreitemshow.MainActivity;
import com.bw.moreitemshow.R;
import com.bw.moreitemshow.bean.News;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.util.List;
/**
* @Auther: jiangnengbao
* @Date: 2019/1/4 16:33:03
* @Description:
*/
public class MyAdapter extends BaseAdapter {
//条目类型必须从0开始
private final static int TYPE_ONE = 0;
private final static int TYPE_TWO = 1;
Context context;
List<News.DataBean> data;
public MyAdapter(Context context, List<News.DataBean> data) {
this.context = context;
this.data = data;
}
//条目类型数量
@Override
public int getViewTypeCount() {
return 2;
}
//根据数据判断类型
@Override
public int getItemViewType(int position) {
if (position == 24 || position == 29) {
return TYPE_TWO;
} else {
return TYPE_ONE;
}
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 viewHolder1 = null;
ViewHolder2 viewHolder2 = null;
//先获取条目类型
int itemViewType = getItemViewType(position);
if (convertView == null) {
//根据类型加载布局
if (itemViewType == TYPE_ONE) {
convertView = View.inflate(context, R.layout.item1, null);
viewHolder1 = new ViewHolder1();
viewHolder1.tv_title1 = convertView.findViewById(R.id.tv_title1);
viewHolder1.iv_head1 = convertView.findViewById(R.id.iv_head1);
convertView.setTag(viewHolder1);
} else {
convertView = View.inflate(context, R.layout.item2, null);
viewHolder2 = new ViewHolder2();
viewHolder2.tv_title2 = convertView.findViewById(R.id.tv_title2);
viewHolder2.iv_head2 = convertView.findViewById(R.id.iv_head2);
viewHolder2.iv_head22 = convertView.findViewById(R.id.iv_head22);
convertView.setTag(viewHolder2);
}
} else {
//根据类型复用
if (itemViewType == TYPE_ONE) {
viewHolder1 = (ViewHolder1) convertView.getTag();
} else {
viewHolder2 = (ViewHolder2) convertView.getTag();
}
}
News.DataBean dataBean = data.get(position);
//DisplayImageOptions自己设置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnFail(R.mipmap.ic_launcher_round)
.displayer(new RoundedBitmapDisplayer(30))
.build();
//根据类型获取数据并展示
if (itemViewType == TYPE_ONE) {
viewHolder1.tv_title1.setText(dataBean.getTitle());
ImageLoader.getInstance().displayImage(dataBean.getThumbnail_pic_s(), viewHolder1.iv_head1,options);
} else {
viewHolder2.tv_title2.setText(dataBean.getTitle());
ImageLoader.getInstance().displayImage(dataBean.getThumbnail_pic_s(), viewHolder2.iv_head2,options);
ImageLoader.getInstance().displayImage(dataBean.getThumbnail_pic_s02(), viewHolder2.iv_head22,options);
}
return convertView;
}
private class ViewHolder1 {
private TextView tv_title1;
private ImageView iv_head1;
}
private class ViewHolder2 {
private TextView tv_title2;
private ImageView iv_head2;
private ImageView iv_head22;
}
}