多条目展示主要实现的是这两个方法
getViewTypeCount();//获取布局的数量
getItemViewType(int position) ;//判断加载那个布局
activity_main布局
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
listv1布局
<TextView
android:id="@+id/imagev1"
android:layout_width="30dp"
android:layout_height="30dp"
/>
<ImageView
android:id="@+id/imagev2"
android:layout_width="30dp"
android:layout_height="30dp"
/>
listv2布局
<ImageView
android:id="@+id/imagev3"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@mipmap/ic_launcher"
/>
<ImageView
android:id="@+id/imagev4"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@mipmap/ic_launcher"/>
<ImageView
android:id="@+id/imagev5"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@mipmap/ic_launcher"/>
<ImageView
android:id="@+id/imagev6"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@mipmap/ic_launcher"/>
list3布局
<ImageView
android:id="@+id/image1"
android:layout_width="30dp"
android:layout_height="30dp" />
<ImageView
android:id="@+id/image2"
android:layout_width="30dp"
android:layout_height="30dp" />
<ImageView
android:id="@+id/image3"
android:layout_width="30dp"
android:layout_height="30dp" />
Dta类
public class Dta {
private int id;
private int photo;
public int getPhoto() {
return photo;
}
public void setPhoto(int photo) {
this.photo = photo;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
public class MainActivity extends AppCompatActivity {
ListView listView;
public List<Dta> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview);
//第一个对象
Dta dta = new Dta();
dta.setPhoto(R.drawable.a);
dta.setId(0);
list.add(dta);
//第二个对象
Dta dt = new Dta();
dt.setPhoto(R.drawable.b);
dt.setPhoto(R.drawable.c);
dt.setPhoto(R.drawable.e);
dt.setPhoto(R.drawable.h);
dt.setId(1);
list.add(dt);
//第三个对象
Dta dat = new Dta();
dat.setId(2);
dat.setPhoto(R.drawable.f);
dat.setPhoto(R.drawable.g);
dat.setPhoto(R.drawable.h);
list.add(dat);
//适配器实例化
Myadapter myadapter = new Myadapter();
//listview进行适配
listView.setAdapter(myadapter);
}
class Myadapter extends BaseAdapter {
//代表着布局
final int TYPE_1 = 0;
final int TYPE_2 = 1;
final int TYPE_3 = 2;
@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 View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
//getItemViewType(int position)传回的值
int type = getItemViewType(i);
Log.e("=============", "getView: " + type);
if (view == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_1://第一个布局
view = View.inflate(MainActivity.this, R.layout.listv1, null);
holder.t = view.findViewById(R.id.imagev1);
holder.imagev2 = view.findViewById(R.id.imagev2);
break;
case TYPE_2://第二个布局
view = View.inflate(MainActivity.this, R.layout.listv2, null);
holder.imagev3 = view.findViewById(R.id.imagev3);
holder.imagev4 = view.findViewById(R.id.imagev4);
holder.imagev5 = view.findViewById(R.id.imagev5);
holder.imagev6 = view.findViewById(R.id.imagev6);
break;
case TYPE_3://第三个布局
view = View.inflate(MainActivity.this, R.layout.listv3, null);
holder.image1 = view.findViewById(R.id.image1);
holder.image2 = view.findViewById(R.id.image2);
holder.image3 = view.findViewById(R.id.image3);
break;
}
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
switch (type) {
case TYPE_1:
holder.t.setText(list.get(i).toString());
holder.imagev2.setImageResource(list.get(i).getPhoto());
break;
case TYPE_2:
holder.imagev3.setImageResource(R.drawable.a);
holder.imagev4.setImageResource(R.drawable.b);
holder.imagev5.setImageResource(R.drawable.c);
holder.imagev6.setImageResource(R.drawable.f);
break;
case TYPE_3:
holder.image1.setImageResource(list.get(i).getPhoto());
holder.image2.setImageResource(list.get(i).getPhoto());
holder.image3.setImageResource(list.get(i).getPhoto());
break;
}
return view;
}
//布局的总个数
@Override
public int getViewTypeCount() {
return 3;
}
//判断id选择相应的布局
@Override
public int getItemViewType(int position) {
int type = list.get(position).getId();
Log.e("-----------", "getItemViewType: " + type);
if (type == 0)
return TYPE_1;
else if (type == 1)
return TYPE_2;
else if (type == 2)
return TYPE_3;
else
return TYPE_1;
}
class ViewHolder {
TextView t;
ImageView imagev2, imagev3, imagev4, imagev5, imagev6, image1, image2, image3;
}
}
}