我检查了以前的答案和文件关于这个主题,但我不能适应我的情况。我有两个数组列表,里面充满了我的特殊类对象。我在xml中有两种不同类型的行。我想创建两个不同的行,并在我的适配器类中填充相关的ArrayList项目。粗体代码:自定义ListView行Android
public class KanalAdapter extends BaseAdapter {
Context context;
ArrayList<OfficialKanal> officialKanals;
ArrayList<NormalKanal> normalKanals;
LayoutInflater lala;
public KanalAdapter(Context context , ArrayList<OfficialKanal> officiallar, ArrayList<NormalKanal> normaller){
this.context = context;
officialKanals = officiallar;
Log.i("tago" , "tagtag");
normalKanals = normaller;
lala = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return normalKanals.size()+officialKanals.size();
}
public Object getItem(int i) {
return ??
}
public long getItemId(int i) {
return ??
}
@Override
public int getItemViewType(int position) {
return ??
}
@Override
public int getViewTypeCount() {
return 2;
}
public View getView(int position, View convertView, ViewGroup viewGroup) {
KanalHolder holder;
int type = getItemViewType(position);
if(convertView==null){
holder = new KanalHolder();
switch (type){
case 0:
convertView = lala.inflate(R.layout.normalkanal,null);
holder.image1 = (ImageView) convertView.findViewById(R.id.imageView5);
holder.tv1 = (TextView) convertView.findViewById(R.id.textView4);
Log.i("tago", "tagtagtag");
holder.tv2 = (TextView) convertView.findViewById(R.id.textView8);
holder.buton1=(Button) convertView.findViewById(R.id.button8);
break;
case 1:
break;
}
convertView.setTag(holder);
}else{
holder = (KanalHolder)convertView.getTag();
}
holder.tv1.setText(normalKanals.get(position).getKanaladi());
holder.image1.setImageResource(R.mipmap.aliprof);
return convertView;
}
static class KanalHolder{
public ImageView image1;
public TextView tv1 , tv2;
public Button buton1;
}
我可以处理getView部分,但我应该如何使用其他方法?
谢谢你的详细解答 – Bad0