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>