listView 加载不同布局item

ListView 加载不同的布局Item

涉及到了两个方法,分别是:getItemViewType(int position) //返回的是加载布局的类别

getViewTypeCount() //返回的是类型的个数

有两种方式:

共有代码


private staitc final int NUM1 = 0;

private static final int NUM2 = 2;

private static final int NUM3 = 3;


class ViewHolder1{

private TextView tv1;

}


class ViewHolder2{

private TextView tv2;

}


class ViewHolder3{

private TextView tv3;

}


@Override
public int getItemViewType(int position) {

if(data.getType.equals("1")){


return 1;


}else if(data.getType.equals("2")){

return 2;

}else{
return 0;
}




}


@Override
public int getViewTypeCount() {
return 3;//返回三个类型
}



方式一:


@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder = null;
ViewHolder1 holder1 = null;
ViewHolder2 holder2 = null;

switch(getItemViewType(position)){

case 0:


if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder1 = new ViewHolder1();
holder1.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder1); // 给View添加一个格外的数据
}




break;
case 1:
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder2 = new ViewHolder2();
holder2.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder2); // 给View添加一个格外的数据
}
break;
case 2:
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder3 = new ViewHolder3();
holder3.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder3); // 给View添加一个格外的数据
}
break;
}


//
switch(getItemViewType(position)){
case 0:
holder1 = (ViewHolder1)view.getTag();
break;
case 1:
holder2 = (ViewHolder2)view.getTag();
break;
case 2:
holder3 = (ViewHolder3)view.getTag();
break;
}


//附加数据
switch(getItemViewType(position)){
case 0:
holder1.tv1.setText("nubmer1");
break;
case 1:
holder2.tv2.setText("nubmer2");


break;
case 2:
holder3.tv3.setText("nubmer3");


break;
}




return convertView;

}

}



方式二:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder = null;
ViewHolder1 holder1 = null;
ViewHolder2 holder2 = null;
switch(getItemViewType(position)){
case 0:




if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder1 = new ViewHolder1();
holder1.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder1); // 给View添加一个格外的数据
}else{
holder1 = (ViewHolder1)view.getTag();

}
holder1.tv1.setText("nubmer1");








break;
case 1:
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder2 = new ViewHolder2();
holder2.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder2); // 给View添加一个格外的数据
}else{
holder2 = (ViewHolder2)view.getTag();
}

holder2.tv2.setText("nubmer2");
break;
case 2:
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
holder3 = new ViewHolder3();
holder3.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(holder3); // 给View添加一个格外的数据
}else{
holder3 = (ViewHolder3)view.getTag();

}
holder3.tv3.setText("nubmer3");
break;
}


return convertView;
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值