thanhcs94
thanhcs94

Reputation: 61

Android - Crash when clicking on RecyclerView when SwipeRefreshLayout loading

I have a RecyclerView inside a SwipeRefreshLayout , when I reload my page , when SwipeRefreshLayout is loading, I click on the item on the RecyclerView and it crashes.

04-21 13:14:49.605 25586-25586/? E/AndroidRuntime: FATAL EXCEPTION: main
                                               Process: com.boxopen.funstack, PID: 25586
                                               java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                   at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                   at java.util.ArrayList.get(ArrayList.java:308)
                                                   at com.boxopen.funstack.adapter.RecycleBookAdapter$BookViewHolder.onClickLike(RecycleBookAdapter.java:339)
                                                   at com.boxopen.funstack.adapter.RecycleBookAdapter$BookViewHolder.access$100(RecycleBookAdapter.java:64)
                                                   at com.boxopen.funstack.adapter.RecycleBookAdapter$BookViewHolder$2.onDoubleClick(RecycleBookAdapter.java:122)
                                                   at com.boxopen.funstack.listener.DoubleClickListener.onClick(DoubleClickListener.java:36)
                                                   at android.view.View.performClick(View.java:4478)
                                                   at android.view.View$PerformClick.run(View.java:18698)
                                                   at android.os.Handler.handleCallback(Handler.java:733)
                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                   at android.os.Looper.loop(Looper.java:149)
                                                   at android.app.ActivityThread.main(ActivityThread.java:5268)
                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                   at java.lang.reflect.Method.invoke(Method.java:515)
                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
                                                   at dalvik.system.NativeStart.main(Native Method)

04-21 13:14:49.675 182-1124/? E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 57

Upvotes: 2

Views: 2276

Answers (3)

dirkvranckaert
dirkvranckaert

Reputation: 1474

Seems like you have cleared your list upon refresh, but the items are still in your recyclerview. You should notify your adapter that the list is empty now. In your current situation, starting to scroll will probably cause the application to crash as well?!

Upvotes: 2

JAAD
JAAD

Reputation: 12379

From what i understand by your question and log is basically you are clearing the arraylist in onRefresh() but not notifying the adapter that the list has been cleared.

Please call notifyDataSetChanged() after clearing arraylist

Upvotes: 13

Sumit Bhatt
Sumit Bhatt

Reputation: 718

you should put condition for check the size of (for eg. array, ArrayList ... used by you ) data

Upvotes: 0

Related Questions