如果我们的listview做的很好了 那么多条目对你来说就很简单了,因为多条目是基于listview的 它们只是在适配器中有所不同
现在我们来看一下适配器
public class MyAdapter extends BaseAdapter {
private ArrayList<JsonBean.NewslistBean> list;
private Context context;
public MyAdapter(ArrayList<JsonBean.NewslistBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getItemViewType(int position) {
if (position%2==0){
//返回第一种视图--左边一张图片--右边是标题和内容
return 0;
}else{
//返回第二种视图--上边是标题 下边三张图片
return 1;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType( position );
switch (type){
case 0://第一种视图的情况
Hoilder1 hoilder1;
if (convertView == null) {
convertView= View.inflate( context, R.layout.list_item, null );
//新建一个Hoilder1
hoilder1 = new Hoilder1();
hoilder1.img1=convertView.findViewById( R.id.img1 );
hoilder1.tv_title1=convertView.findViewById( R.id.tv_title1 );
hoilder1.tv_description1=convertView.findViewById( R.id.tv_description1 );
convertView.setTag( hoilder1 );
}else{
hoilder1= (Hoilder1)convertView.getTag();
}
//给控件赋值
Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder1.img1 );
hoilder1.tv_title1.setText( list.get( position ).getTitle() );
hoilder1.tv_description1.setText( list.get( position ).getDescription() );
break;
case 1://第二种视图的情况
Hoilder2 hoilder2;
if (convertView == null) {
convertView= View.inflate( context, R.layout.list_item1, null );
//新建一个Hoilder2
hoilder2 = new Hoilder2();
hoilder2.img2_1=convertView.findViewById( R.id.img2_1 );
hoilder2.img2_2=convertView.findViewById( R.id.img2_2 );
hoilder2.img2_3=convertView.findViewById( R.id.img2_3 );
hoilder2.tv_description2=convertView.findViewById( R.id.tv_description2);
convertView.setTag( hoilder2 );
}else{
hoilder2= (Hoilder2)convertView.getTag();
}
//给控件赋值
Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_1);
Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_2 );
Glide.with( context ).load( list.get( position ).getPicUrl() ).into( hoilder2.img2_3 );
hoilder2.tv_description2.setText( list.get( position ).getDescription() );
break;
}
return convertView;
}
//新建一个Hoilder1
class Hoilder1{
ImageView img1;
TextView tv_title1;
TextView tv_description1;
}
//新建一个Hoilder2
class Hoilder2{
ImageView img2_1;
ImageView img2_2;
ImageView img2_3;
TextView tv_description2;
}
}