我正在尝试使用ArrayAdapter从对象生成列表。结果如下:
项目A(3) 项目B(1) 项目C(0)
括号中的数字表示该文件后面的项目数量。我想在括号中有1时显示图像 - 在这种情况下仅适用于项目B.
我有一个可用的属性图像,只有当项目为1时才设置为真。
然而,当我创建列表时,它会在Image的所有位置创建,但在项目C中除外。我创建了一个简短的日志来尝试理解原因并发现public View getView(int position, View convertView, ViewGroup parent) {
方法被调用到11次......虽然前3名应该足够了。当我修改我的if子句时,它应该在检测到一个项目时将imageavailable设置为false - 只有第一个项目有一个图片。谁能帮我吗? (我也尝试使if(imageavailable& number == 1)得到相同的结果 - 1st 2有一张图片
答案 0 :(得分:0)
您应该管理适配器,而不是为getView添加逻辑。处理适配器的逻辑应该在它自己的方法中。例如:
ArrayList<Drawable> adapter = new ArrayList<Drawable>();
void constructAdapter(List<Drawable>... drawables, int sizeFilter) {
if (drawables != null) {
for (List<Drawable> l : drawables) {
if (drawable.size() == sizeFilter) {
for (int i = 0; i < sizeFilter) {
adapter.add(l.get(i));
}
}
}
}
}
然后从这里将适配器列表传递给您的数组适配器。
注意:我使用drawable作为我的例子,因为你说的是图像。这可以是你想要的任何东西,只要你只是改变逻辑来处理那个特定的数据集。