如何在Activity上的listview中更新项目视图的布局

时间:2017-08-06 19:46:23

标签: android listview checkbox android-arrayadapter

我的应用有一个按钮(B1)自定义ListView,项目视图包括:checkbox,textview

目标是我按下按钮B1然后ListView中的所有复选框都将被设置为可见,我已经完成了它但是这对于在屏幕上显示的内容是可行的。当我滚动Listview以防多行时,其他人不可见

让我们看看我的解释:    - 示例列表数据中有10个项目 - >当前屏幕上的列表视图只显示5个项目(滚动时仍可看到10个项目)    - 当按下按钮B1时,只有5个项目的CHECKBOX可见,其他的不工作

我的意思是我想在Activity

上更改视图项的布局

1 个答案:

答案 0 :(得分:0)

因为您只是更新布局的视图。您还需要更新数据集(listview适配器的数组),但我知道您的数据集中没有布尔变量来决定复选框是否可见。首先,您需要添加变量。单击按钮后,不要更新布局视图。仅更改数据(布尔变量)并调用自定义适配器的notifyDataSetChanged()方法。 notifyDataSetChanged()方法将调用适配器的getView()方法,以查看屏幕中可见的所有视图。如果在getView()方法中检查视图的可见性,则值将正确更新。滚动后的其他项目将是正确的,因为您的getView()方法是正确的。

如果您不理解答案,请添加OnClickListener of button和您的自定义适配器类。我会更新它们。

编辑:你专注于错误的问题。您的解决方案与更新布局无关。你对listView应该如何工作的逻辑有疑问。