我檢查了以前的答案和文件關於這個主題,但我不能適應我的情況。我有兩個數組列表,裏面充滿了我的特殊類對象。我在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