2016-04-21 3 views
0

У меня есть RecyclerView внутри SwipeRefreshLayout, когда я перезарядить мою страницу, когда SwipeRefreshLayout загружается, я нажимаю на пункт на RecyclerView и он выходит из строя.Android - Ошибка при нажатии на RecyclerView когда SwipeRefreshLayout загрузка

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: ТР3, RET = 57

+0

ваш список содержит 0 элементов, и вы хотите получить индекс 0, чтобы он разбился. – Amir

ответ

2

Из того, что я понимаю, по вашему вопросу и журналу в основном вы очищаете arraylist в onRefresh(), но не уведомляете адаптер о том, что список был очищен.

Пожалуйста, позвоните notifyDataSetChanged() после очистки arraylist

+0

omg, просто забыл вызвать mAdapter.notifyDataSetChanged(); , спасибо вам большое, сэкономьте мой день – thanhcs94

+0

@ thanhcs94 вы должны принять и отложить ответы, если это помогло вам –

+0

yep, я знаю, спасибо, но у меня недостаточно репутации, чтобы сделать это – thanhcs94

0

вы должны поставить условие для проверки размера (например, для массива ArrayList ... используется вами.) Данные

1

Похоже, вы очистили свой список, на обновления, но детали все еще находятся в вашем recyclerview. Вы должны уведомить свой адаптер о том, что список пуст. В вашей текущей ситуации начало прокрутки, вероятно, приведет к сбою приложения?

+0

спасибо, я забыл :) сохранить свой день – thanhcs94