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.squareup.picasso.Picasso;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private List<Bean.DataBean> list;
private Context context;
public MyAdapter(List<Bean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
/**
* 当前条目类型的种类数
* 当前程序有两种条目类型(纯文字类型 ,文字+图片条目类型)
*
* @return
*/
@Override
public int getViewTypeCount() {
return 2;
}
/**
* 每次要显示布局条目的时候,要判断当前条目是那种类型
* 条目类型从0开始排序,当前有两种条目类型,一种类型标识是0, 一种类型标识是1
* 获取条目视图类型
*
* @param position
*/
@Override
public int getItemViewType(int position) {
return position%2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//得到条目类型标识
int type = getItemViewType(position);
switch (type){
case 0://偶数条目
ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
convertView = View.inflate(context,R.layout.show_layout,null);
holder.title = convertView.findViewById(R.id.title);
holder.img = convertView.findViewById(R.id.img);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(list.get(position).getTitle());
Picasso.get().load(list.get(position).getThumbnail_pic_s()).into(holder.img);
break;
case 1:// 奇数条
ViewHolder2 holder2;
if(convertView==null){
holder2 = new ViewHolder2();
convertView = View.inflate(context,R.layout.show_layout,null);
holder2.title1 = convertView.findViewById(R.id.title);
convertView.setTag(holder2);
}else{
holder2 = (ViewHolder2) convertView.getTag();
}
holder2.title1.setText(list.get(position).getTitle());
break;
}
return convertView;
}
class ViewHolder{
public TextView title;
public ImageView img;
}
class ViewHolder2{
public TextView title1;
}
}
如果需要3种格式,请看下图
public int getItemViewType(int position) {
if (position%3==0){
return 0;
}else if (position%3==1){
return 1;
}
return 2;
}
@Override
public int getViewTypeCount() {
return 3;
}