1

最後の行に到達すると、このエラーが発生します.. IndexOutOfBoundException 無効なインデックス 20 サイズは 20 です。

これは私のコードです。

public class SocialListAdapter extends BaseAdapter {

private Activity activity;
private List<Item> items;
private List<Item> items2;
private List<Item> items3;
private List<FacebookItem> fb;
private List<Instagram> insta;

// private MainTable objBean;
private Item objBean;
private Item objBean2;
private Item objBean3;
// private MainTable objBean;

private int row;
private int i;
int layout1 = 0;
int layout2 = 1;
Session session;
String fbpostid;
private InstagramApp mApp;
private InstagramSession mSession;
private static final String API_URL = "https://api.instagram.com/v1";
String accessToken;
private DisplayImageOptions options;
ImageLoader imageLoader;
String name;
int fbcount;
int instacount;

public SocialListAdapter(Activity act, int resource, List<Item> arrayList,
        List<Item> arrayList2, List<Item> arrayList3, String name,
        int fbcount, int instacount) {
    // super(act, resource, arrayList);
    // TODO Auto-generated constructor stub
    this.activity = act;
    this.items = arrayList;
    this.row = resource;
    this.items2 = arrayList2;
    this.items3 = arrayList3;   
}

@Override
public int getViewTypeCount() {
    return 2;
}

@Override
public int getItemViewType(int position) {

    objBean = items.get(position);
    if (objBean.getI() == 0) {
        return layout1;
    } else if (objBean.getI() == 1) {
        return layout2;
    }
    return i;

}

@Override
public int getCount() {
    return items.size();

}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    final ViewHolder holder;
    objBean = items.get(position);
     objBean2 = items2.get(position); 
     objBean3 = items3.get(position);

    int type = getItemViewType(position);

    i = objBean.getI();
    // if(i == 0){

    if (view == null) {

        LayoutInflater inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        // view = inflater.inflate(row, null);

        if (type == layout1) {

            view = inflater.inflate(R.layout.list, null);

        } else if (type == layout2) {
            view = inflater.inflate(R.layout.row1, null);
        }
        holder = new ViewHolder();
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }



    if ((items == null) || ((position + 1) > items.size()))
        return view;
    if ((items2 == null) || ((position + 1) > items2.size()))
        return view;
    if ((items3 == null) || ((position + 1) > items3.size()))
        return view;


    holder.tvinstatime = (TextView) view.findViewById(R.id.instatime);

    holder.tvinstapostid = (TextView) view.findViewById(R.id.instapostid);



    if (holder.tvinstapostid != null && null != objBean3.getinstapost_id()
            && objBean3.getinstapost_id().trim().length() > 0) {
        holder.tvinstapostid.setText(Html.fromHtml(objBean3
                .getinstapost_id()));
    }


    if (holder.tvinstatime != null && null != objBean3.getdatetime()
            && objBean3.getdatetime().trim().length() > 0) {
        holder.tvinstatime.setText(Html.fromHtml(objBean3.getdatetime()));
    }


    holder.ivimage = (ImageView) view.findViewById(R.id.fbdp);
    holder.buttonlike = (Button) view.findViewById(R.id.likelist);

    if (holder.tvfbpostid != null && null != objBean.getfbpost_id()
            && objBean.getfbpost_id().trim().length() > 0) {
        holder.tvfbpostid.setText(Html.fromHtml(objBean.getfbpost_id()));
    }

    return view;
}

ここでは、3 つの配列リストを使用しています。

最初のものはフラグを取得することであり、それは選択するレイアウトに依存します。

2つ目は、fbの詳細を取得することです

3 つ目は、instagram のデータを取得することです。

この行でエラーが発生しています

 objBean2 = items2.get(position); 

最後までスクロールしたとき。

4

0 に答える 0