Android 在gridView上滚动不允许保存所选数据

Android 在gridView上滚动不允许保存所选数据,android,gridview,scroll,Android,Gridview,Scroll,我有一个使用自定义适配器填充的gridView。自定义适配器有点复杂,因为在每个单元格上,我根据用户需求填充不同种类的小部件。这工作很好,我能够滚动并设置特定小部件的值 当需要保存时,我循环遍历GridView的子对象,并将值传递给JSON。这也适用,但仅适用于可见的子对象 有人能告诉我如何获取单元格中的小部件的值,但由于我已滚动,因此在网格视图中不可见 谢谢。是的,这个问题发生在ListView和GridView上,因为这些组件中的android会破坏和重新创建视图 如果您需要通过此问题,您有

我有一个使用自定义适配器填充的gridView。自定义适配器有点复杂,因为在每个单元格上,我根据用户需求填充不同种类的小部件。这工作很好,我能够滚动并设置特定小部件的值

当需要保存时,我循环遍历GridView的子对象,并将值传递给JSON。这也适用,但仅适用于可见的子对象

有人能告诉我如何获取单元格中的小部件的值,但由于我已滚动,因此在网格视图中不可见


谢谢。

是的,这个问题发生在
ListView
GridView
上,因为这些组件中的android会破坏和重新创建视图

如果您需要通过此问题,您有两个选择:

首先:在适配器上添加一些修改,以保存
网格视图中每行或每项的值

Second:使用
RecyclerView
,因为此问题不会出现在其中


我更喜欢第二种选择
RecyclerView
优于
Grid
ListView

Hi Ahmed。我已经将我的网格视图更改为回收器视图,但面临相同的问题。RecyclerView.getChildCount仅返回可见的子项数。然后我尝试了LayoutManager,但它也有同样的问题。LayoutManager.getItemCount()确实检索到了正确数量的子项,但当视图不可见时,我无法访问任何视图。我正在使用getChildAt()。我遗漏了什么吗?@Prem您需要对
RecyclerView
项目执行操作吗?是的。在RecyclerView上有一些小部件,如复选框和单选按钮。按save键时,我需要获取所有这些值并将它们传递给JSON。有办法吗?@Prem是的,您可以这样做,在RecyclerView适配器中实现操作侦听器。请检查此链接