[英]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. 我在SwipeRefreshLayout
有一个RecyclerView
,当我重新加载我的页面时,当加载SwipeRefreshLayout
时,我点击RecyclerView
上的项目它就崩溃了。
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/? 04-21 13:14:49.675 182-1124 /? E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 57 E / IMGSRV :: 0:PVRDRMOpen:TP3,ret = 57
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. 根据我的理解你的问题和日志基本上是你清除onRefresh()
的arraylist
但不通知适配器列表已被清除。
Please call notifyDataSetChanged()
after clearing arraylist
清除arraylist
后请调用notifyDataSetChanged()
Seems like you have cleared your list upon refresh, but the items are still in your recyclerview. 您似乎已经在刷新后清除了列表,但这些项目仍在您的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?! 在你目前的情况下,开始滚动可能会导致应用程序崩溃?!
你应该把条件用于检查(例如,数组,ArrayList ...你使用的)数据的大小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.