SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Machinima

    Machinima

    17 Ocak 2006
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011
  • monkophile

    monkophile

    25 Temmuz 2007