我的应用有一个按钮(B1)自定义ListView,项目视图包括:checkbox,textview
目标是我按下按钮B1然后ListView中的所有复选框都将被设置为可见,我已经完成了它但是这对于在屏幕上显示的内容是可行的。当我滚动Listview以防多行时,其他人不可见
让我们看看我的解释: - 示例列表数据中有10个项目 - >当前屏幕上的列表视图只显示5个项目(滚动时仍可看到10个项目) - 当按下按钮B1时,只有5个项目的CHECKBOX可见,其他的不工作
我的意思是我想在Activity
上更改视图项的布局答案 0 :(得分:0)
因为您只是更新布局的视图。您还需要更新数据集(listview适配器的数组),但我知道您的数据集中没有布尔变量来决定复选框是否可见。首先,您需要添加变量。单击按钮后,不要更新布局视图。仅更改数据(布尔变量)并调用自定义适配器的notifyDataSetChanged()方法。 notifyDataSetChanged()方法将调用适配器的getView()方法,以查看屏幕中可见的所有视图。如果在getView()方法中检查视图的可见性,则值将正确更新。滚动后的其他项目将是正确的,因为您的getView()方法是正确的。
如果您不理解答案,请添加OnClickListener of button和您的自定义适配器类。我会更新它们。
编辑:你专注于错误的问题。您的解决方案与更新布局无关。你对listView应该如何工作的逻辑有疑问。