7 NİSAN 2010, ÇARŞAMBA
Özel ArrayİndexOutOfBoundsException görüntüsünde birden çok görünüm için Adaptör Android
Ben denemeden oluşturmak için özel bir Adaptör için benim Liste Görünümü beri listedeki her öğe bir farklı görünüm (bir bağlantı, bir geçiş, ya da radyo grubu), ama ne zaman ben kaçayım Aktivite kullanan Liste Görünümü aldığım bir hata ve uygulamayı durdurur. Uygulama Android 1.6 platformu için tasarlanmıştır.
Kod:
public class MenuListAdapter extends BaseAdapter {
private static final String LOG_KEY = MenuListAdapter.class.getSimpleName();
protected List<MenuItem> list;
protected Context ctx;
protected LayoutInflater inflater;
public MenuListAdapter(Context context, List<MenuItem> objects) {
this.list = objects;
this.ctx = context;
this.inflater = (LayoutInflater)this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.i(LOG_KEY, "Position: " position "; convertView = " convertView "; parent=" parent);
MenuItem item = list.get(position);
Log.i(LOG_KEY, "Item=" item );
if (convertView == null) {
convertView = this.inflater.inflate(item.getLayout(), null);
}
return convertView;
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return true;
}
@Override
public int getCount() {
return this.list.size();
}
@Override
public MenuItem getItem(int position) {
return this.list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
Log.i(LOG_KEY, "getItemViewType: " this.list.get(position).getLayout());
return this.list.get(position).getLayout();
}
@Override
public int getViewTypeCount() {
Log.i(LOG_KEY, "getViewTypeCount: " this.list.size());
return this.list.size();
}
}
Aldığım hata:
java.lang.ArrayIndexOutOfBoundsException
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:3523)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1158)
at android.widget.ListView.onMeasure(ListView.java:1060)
at android.view.View.measure(View.java:7703)
Uygulama getView
dönen olduğunu biliyorum Ve her şey yolunda görünüyor.
Bu neden olabilir ne herhangi bir fikir mutluluk duyacağız.
Teşekkürler
-Dan
CEVAP
8 NİSAN 2010, PERŞEMBE
Madde görünüm türünden dönüyor
getItemViewType()
>= getViewTypeCount()
.
Bunu Paylaş:
Android özel bir görünüm için üç kuruc...
Nasıl özel bir ayırıcı ile bir dosya i...
Android: Görünüm.KİMLİK çatışmaları ön...
Bir film şeridi içinde, nasıl birden f...
Birden çok görünüm için bir UİGestureR...