class MyAdapter extends BaseAdapter {
private final int TYPE0 = 0 ;
private final int TYPE1 = 1 ;
//长度
@Override
public int getCount() {
return datalist .size();
}
//布局
@Override
public Object getItem(int i) {
return datalist .get(i);
}
//下标
@Override
public long getItemId(int i) {
return i;
}
//多少种布局
@Override
public int getViewTypeCount() {
return 2 ;
}
//下标对应的布局
@Override
public int getItemViewType(int position) {
boolean b = datalist .get(position).getIMAGEURL() != null ;
if (b) {
return 0 ;
} else {
return 1 ;
}
}
//设置布局并且优化
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//获取不同布局的返回值
int type = getItemViewType(i);
ViewHolder0 holder0;
ViewHolder1 holder1;
//判断选择
switch (type) {
case TYPE0 :
//判断是否为空
if (view == null ) {
//获取布局
view = View.inflate (MainActivity.this , R.layout.item0 , null );
holder0 = new ViewHolder0();
//初始化组件
holder0.tv0 = view.findViewById(R.id.tv_content );
holder0.tv1 = view.findViewById(R.id.tv_time );
//关联
view.setTag(holder0);
} else {
holder0 = (ViewHolder0) view.getTag();
}
//赋值
holder0.tv0 .setText(datalist .get(i).getTITLE());
holder0.tv1 .setText(datalist .get(i).getSHOWTIME());
break ;
case TYPE1 :
if (view == null ) {
//获取布局
view = View.inflate (MainActivity.this , R.layout.item , null );
holder1 = new ViewHolder1();
//初始化组件
holder1.tv0 = view.findViewById(R.id.tv_content );
holder1.tv1 = view.findViewById(R.id.tv_time );
holder1.iv = view.findViewById(R.id.iv );
//关联
view.setTag(holder1);
} else {
holder1 = (ViewHolder1) view.getTag();
}
//赋值
holder1.tv0 .setText(datalist .get(i).getTITLE());
holder1.tv1 .setText(datalist .get(i).getSHOWTIME());
//设置图片
instance .displayImage((String) datalist .get(i).getIMAGEURL(), holder1.iv ,options );
break ;
}
return view;
}
}
布局:
0:<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :gravity= "center_vertical"
android :orientation= "horizontal"
android :padding= "10dp" >
<ImageView
android :id= "@+id/iv"
android :layout_width= "150dp"
android :layout_height= "100dp"
android :src= "@mipmap/ic_launcher" />
<LinearLayout
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :orientation= "vertical"
android :padding= "10dp" >
<TextView
android :id= "@+id/tv_content"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "ASDASDAS"
android :textSize= "24sp" />
<TextView
android :id= "@+id/tv_time"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_marginTop= "10dp"
android :text= "ASDASDAS"
android :textSize= "16sp" />
</LinearLayout >
</LinearLayout >
1:<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :gravity= "center_vertical"
android :orientation= "vertical"
android :padding= "10dp" >
<TextView
android :id= "@+id/tv_content"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "ASDASDAS"
android :textSize= "24sp" />
<TextView
android :id= "@+id/tv_time"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_marginTop= "10dp"
android :text= "ASDASDAS"
android :textSize= "16sp" />
</LinearLayout >