android - 如何迭代 RecyclerView 中的所有 View /项目?

标签 android nullpointerexception android-recyclerview android-viewholder

我需要迭代 RecyclerView 中的所有 RadioGroups

我尝试过的代码:

for(int i=0;i<recyclerView.getAdapter().getItemCount();i++)
  {
     radioGroup = recyclerView.findViewHolderForAdapterPosition(i).itemView.findViewById(R.id.radio_group);
  }

但是 findViewHolderForAdapterPosition(i) 对于屏幕外的 RadioGroups 返回 null 并给我一个 NullPointerException

我如何遍历所有这些?

最佳答案

当您滚动时,RecyclerView View 会根据需要创建/销毁。您不能依赖它们的可用性。

我假设您正在尝试检索选择状态。最好将其存储在适配器的对象中,并在单击单选按钮时更新其值。

然后,您可以在适配器中实现 getItem 方法,该方法返回对象及其当前选择状态。

关于android - 如何迭代 RecyclerView 中的所有 View /项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50947445/

相关文章:

java - 如何在 Android Studio 中构建 AndEngine?

java - 数组返回 NullPointerException

Android LiveData Observer 在性能方面的替代方案

android - 为什么将 OnClickListener 分配给 AutoCompleteTextView 会给出 NullPointerException?

java - 尽管组件的 ID 存在,findViewById 返回 null

android - 是否可以在 Android 中以编程方式为 RecyclerView 子项设置重力?

带有 fragment 的 Android ViewPager2 包含不滚动的 recyclerview

android - 如何禁用 ListAdapter 的动画

android - 如何使用 getter 和 setter 方法在可扩展 ListView 上获取组和子项

java - 如何在 Android 中进行搜索