Android - 在加载 SwipeRefreshLayout 时单击 RecyclerView 时崩溃

标签 android android-recyclerview swiperefreshlayout

我在 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/? E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 57

最佳答案

根据我对你的问题和日志的理解,基本上你正在清除 onRefresh() 中的 arraylist 但没有通知适配器列表已被清除。

清除arraylist后请调用notifyDataSetChanged()

关于Android - 在加载 SwipeRefreshLayout 时单击 RecyclerView 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36761161/

相关文章:

java - 用户注销后,添加到 TextView 中的文本仍保留在那里

android - androidx 迁移后,react-native 应用程序上出现 SwipeRefreshLayout 错误

android - 在Android中创建图像类型TextView

android - 我们可以检查列表中是否存在重复的图像吗?

android - Flutter 轻松本地化源码路径不存在

android - 为什么我的 Recycler View 选择了错误的项目以及被点击的完全选定的项目?

android - 使用图像和视频加载 recyclerview

android - 水平 RecyclerView 顶部的滚动条

android - 如何向 SwipeRefreshLayout 内的 listView 添加标题?

Android SwipeRefreshLayout 禁用拉动刷新