android 多个layout布局listView
上效果图先:
1、在MainActivity的OnCreate中填写的代码如下所示:
listview=(ListView) findViewById(R.id.listView);
adapter=new MyAdapter(this);
listview.setAdapter(adapter);
这几行代码实现对listView与适配器之间的绑定。
2、声明几个类型变量
final int VIEW_TYPE = 2; // 总的item样式数
final int TYPE_0 = 0; // 第一个item布局
final int TYPE_1 = 1; //第二个item布局
3、在MyAdapter 类里面添加以下两个方法:
@Override
public int getItemViewType(int position) { //item样式的返回类型绑定
if (position == 0) {
return TYPE_0;
} else {
return TYPE_1;
}
}
@Override
public int getViewTypeCount() { //item样式类型总数
return VIEW_TYPE;
}
4、getView方法中layout的绑定方式
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
ViewHolder1 holder1 = new ViewHolder1();
int type=getItemViewType(position); //获取所有样式类型总数
if (convertView == null) {
switch(type){
case TYPE_0:
convertView=inflater.inflate(R.layout.listview_item, parent,false);
holder.txt_name=(TextView) convertView.findViewById(R.id.textView1);
holder.txt_con=(TextView) convertView.findViewById(R.id.textView2);
holder.img_header=(ImageView) convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
break;
case TYPE_1:
convertView=inflater.inflate(R.layout.listview_item1, parent,false);
holder1.img1=(ImageView) convertView.findViewById(R.id.imageView1);
holder1.img2=(ImageView) convertView.findViewById(R.id.imageView2);
holder1.img3=(ImageView) convertView.findViewById(R.id.imageView3);
holder1.img4=(ImageView) convertView.findViewById(R.id.imageView4);
holder1.img5=(ImageView) convertView.findViewById(R.id.imageView5);
convertView.setTag(holder1);
break;
default:break;
}
}else{
switch(type){
case TYPE_0:
holder=(ViewHolder) convertView.getTag();
break;
case TYPE_1:
holder1=(ViewHolder1) convertView.getTag();
break;
}
}
switch(type){
case TYPE_0:
holder.txt_name.setText("现在好无聊哦!");
holder.txt_con.setText("你之所以会无聊,是因为你没有事情可以做!");
holder.img_header.setBackgroundResource(R.drawable.pic);
break;
case TYPE_1:
break;
}
return convertView;
}
5、ViewHolder类中空间的声明
class ViewHolder {
private TextView txt_name, txt_con;
private ImageView img_header;
}
class ViewHolder1 {
@SuppressWarnings("unused")
private TextView txt_name1, txt_con1;
private ImageView img1, img2, img3, img4, img5;
}
代码下载:http://download.youkuaiyun.com/detail/greatsuny/7556377