2

我想ListView在单击外部按钮时更改 a 的每个项目的图像的可见性(我的意思是这不是 的一部分ListView)。

所以我需要访问 a 的所有子视图ListView。然后我做了一个这样的循环:

for (int i = 0...
{
     View child_view = list_view.getChildAt(i);
     ...
}

问题是,这样,我只能访问当前可见的孩子,我需要访问ListView.

我怎么能做这样的事情?

4

2 回答 2

1

解决方法很简单

在您的适配器类中采用这样的 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]);

为了解释这一点,我添加了国家/地区示例。我在以前的应用程序中使用了相同的技巧来获取列表……它就像魅力一样。我希望这会对你有所帮助。

于 2013-02-21T19:13:35.263 回答
1

我通过以下方式解决了这个问题:

  • 用这个改变所有可见的孩子:在此处输入链接描述

  • 在适配器的 getView 函数中更改不可见的子项,因为 getView 在滚动时刷新很重要。

于 2013-02-27T22:00:47.597 回答