我想ListView
在单击外部按钮时更改 a 的每个项目的图像的可见性(我的意思是这不是 的一部分ListView
)。
所以我需要访问 a 的所有子视图ListView
。然后我做了一个这样的循环:
for (int i = 0...
{
View child_view = list_view.getChildAt(i);
...
}
问题是,这样,我只能访问当前可见的孩子,我需要访问ListView
.
我怎么能做这样的事情?
解决方法很简单
在您的适配器类中采用这样的 int 数组
int visibilities[]={ImageView.VISIBLE,ImageView.GONE,ImageView.INVISIBLE};
如果您从 Drawable Resources 设置图像,那么您可能会将 ids 传递给 ArrayList 项目,如下所示
CountriesList.add(new Country("India",R.drawable.india));
比在 Country 类(您的 Bean 类(Getter setter 类))中创建另一个变量并将其设置为 int 类型,如下所示
class Country{
String name;
int flag;
int visibility;
}
在将元素添加到列表时传递这样的可见性
CountriesList.add(new Country("India",R.drawable.india,1));
在适配器的 getView() 方法中,您可能会像这样设置资源
holder.image.setImageResource(country.getFlag());
还要添加这一行
holder.image.setVisibility(visibilities[country.getVisibility]);
为了解释这一点,我添加了国家/地区示例。我在以前的应用程序中使用了相同的技巧来获取列表……它就像魅力一样。我希望这会对你有所帮助。
我通过以下方式解决了这个问题:
用这个改变所有可见的孩子:在此处输入链接描述
在适配器的 getView 函数中更改不可见的子项,因为 getView 在滚动时刷新很重要。