How to fix the ArrayIndexOutOfBoundsException in Adapter android

Thanh Nam Pham

I'm using CardView, Json to load data and display in list item. But I build the first time, it happened an exception is: ArrayIndexOutOfBoundsException

My Adapter class:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

private static final int TYPE_HEADER = 4;
private static final int TYPE_ITEM = 1;
Context context;
List<CarData> getCarData;  // getDataAdapter
ImageLoader imageThumbLoader;

public RecyclerViewAdapter(List<CarData> getCarData, Context context){
    super();
    this.getCarData = getCarData;
    this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items, parent, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) {

        CarData getCarData1 = getCarData.get(position - 1);

        imageThumbLoader = ServerImageParseAdapter.getInstance(context).getImageLoader();

        imageThumbLoader.get(getCarData1.getImageThumb(),
                ImageLoader.getImageListener(
                        Viewholder.imageThumb,//Server Image
                        R.mipmap.bg_icon,//Before loading server image the default showing image.
                        android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
                )
        );

    Viewholder.imageThumb.setImageUrl(getCarData1.getImageThumb(), imageThumbLoader);
    Viewholder.titleName.setText(getCarData1.getTitleName());
    Viewholder.doorName.setText(Html.fromHtml("<b>Số cửa:</b> " + getCarData1.getDoorName()));
    Viewholder.seatName.setText(Html.fromHtml("<b>Số ghế:</b> " + getCarData1.getSeatName()));
    Viewholder.cityName.setText(Html.fromHtml(getCarData1.getCityName()));
    Viewholder.districtName.setText(Html.fromHtml(getCarData1.getDistrictName()));

}

public int getDataAdapter() {
    return getCarData == null ? 0 : getCarData.size();
}

@Override
public int getItemViewType(int position) {
    if (isPositionHeader(position)) {
        return TYPE_HEADER;
    }

    return TYPE_ITEM;
}

@Override
public int getItemCount() {

    return getDataAdapter() + 1;
}

private boolean isPositionHeader(int position) {
    return position == 0;
}


class ViewHolder extends RecyclerView.ViewHolder{

    public TextView titleName;
    public NetworkImageView imageThumb;
    public TextView doorName;
    public TextView seatName;
    public TextView cityName;
    public TextView districtName;

    public ViewHolder(View itemView) {

        super(itemView);

        titleName = (TextView) itemView.findViewById(R.id.titleName);
        imageThumb = (NetworkImageView) itemView.findViewById(R.id.imageThumb);
        doorName = (TextView) itemView.findViewById(R.id.doorName);
        seatName = (TextView) itemView.findViewById(R.id.seatName);
        cityName = (TextView) itemView.findViewById(R.id.cityName);
        districtName = (TextView) itemView.findViewById(R.id.districtName);
    }
  }
}

and Logcat:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: pl.michalz.hideonscrollexample, PID: 3420
java.lang.ArrayIndexOutOfBoundsException: length=18; index=-1
  at java.util.ArrayList.get(ArrayList.java:310)
  at pl.michalz.hideonscrollexample.RecyclerViewAdapter.onBindViewHolder(RecyclerViewAdapter.java:54)
  at pl.michalz.hideonscrollexample.RecyclerViewAdapter.onBindViewHolder(RecyclerViewAdapter.java:20)
  at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5768)
  at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5801)

How to fix this error, I have tried a lot of ways, but it seem not have result for.

Reza.Abedini

you should change

CarData getCarData1 = getCarData.get(position - 1);

to

CarData getCarData1 = getCarData.get(position);

position starts from 0 not 1.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

How Android Custom Adapter works?

From Dev

How to fix NetworkonMainThreadException in Android?

From Dev

How to determine which part of adapter was called in Android

From Dev

How can remove adapter from Listview, Android

From Dev

How to Fix the Runtime Error : java.lang.ArrayIndexOutOfBoundsException: 0

From Dev

how to give margin of layout in adapter of list in android?

From Dev

How to use a SurfaceView from an Adapter (Android)

From Dev

Android: How to write customize array adapter for objects

From Dev

How to fix java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

From Dev

How to get item from RecyclerView adapter in Android

From Dev

How to fix ArrayIndexOutOfBoundsException for a two dimensional array

From Dev

Android - How to manage position of viewpager in adapter?

From Dev

How to customize an adapter in Android?

From Dev

How to use snackbar in android base adapter

From Dev

How do I fix this ArrayIndexOutOfBoundsException in my hashtable?

From Dev

Android ArrayIndexOutOfBoundsException..?

From Dev

Local-link IP - 169.254 - for wireless network adapter - how to fix?

From Dev

how to fix menu bar css-adapter stuffs with IE

From Dev

How to Fix the Runtime Error : java.lang.ArrayIndexOutOfBoundsException: 0

From Dev

How does addAll work in an android List adapter?

From Dev

How to set Adapter for listview with image in Android

From Dev

How to fix ArrayIndexOutOfBoundsException when a activity is reloaded in Android?

From Dev

how to pass Json data in Android Adapter

From Dev

How to get position in Sectioned Adapter (Android)?

From Dev

How to use snackbar in android base adapter

From Dev

How to fix android bootloop?

From Dev

Android Java ArrayIndexOutOfBoundsException

From Dev

How to pass a string value to adapter class (Base adapter) android JAVA

From Dev

Android Things GPS ArrayIndexOutOfBoundsException

Related Related

  1. 1

    How Android Custom Adapter works?

  2. 2

    How to fix NetworkonMainThreadException in Android?

  3. 3

    How to determine which part of adapter was called in Android

  4. 4

    How can remove adapter from Listview, Android

  5. 5

    How to Fix the Runtime Error : java.lang.ArrayIndexOutOfBoundsException: 0

  6. 6

    how to give margin of layout in adapter of list in android?

  7. 7

    How to use a SurfaceView from an Adapter (Android)

  8. 8

    Android: How to write customize array adapter for objects

  9. 9

    How to fix java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

  10. 10

    How to get item from RecyclerView adapter in Android

  11. 11

    How to fix ArrayIndexOutOfBoundsException for a two dimensional array

  12. 12

    Android - How to manage position of viewpager in adapter?

  13. 13

    How to customize an adapter in Android?

  14. 14

    How to use snackbar in android base adapter

  15. 15

    How do I fix this ArrayIndexOutOfBoundsException in my hashtable?

  16. 16

    Android ArrayIndexOutOfBoundsException..?

  17. 17

    Local-link IP - 169.254 - for wireless network adapter - how to fix?

  18. 18

    how to fix menu bar css-adapter stuffs with IE

  19. 19

    How to Fix the Runtime Error : java.lang.ArrayIndexOutOfBoundsException: 0

  20. 20

    How does addAll work in an android List adapter?

  21. 21

    How to set Adapter for listview with image in Android

  22. 22

    How to fix ArrayIndexOutOfBoundsException when a activity is reloaded in Android?

  23. 23

    how to pass Json data in Android Adapter

  24. 24

    How to get position in Sectioned Adapter (Android)?

  25. 25

    How to use snackbar in android base adapter

  26. 26

    How to fix android bootloop?

  27. 27

    Android Java ArrayIndexOutOfBoundsException

  28. 28

    How to pass a string value to adapter class (Base adapter) android JAVA

  29. 29

    Android Things GPS ArrayIndexOutOfBoundsException

HotTag

Archive