构建自定义列表

时间:2013-01-15 15:44:37

标签: android eclipse listview android-arrayadapter

我正在尝试使用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有一张图片

1 个答案:

答案 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作为我的例子,因为你说的是​​图像。这可以是你想要的任何东西,只要你只是改变逻辑来处理那个特定的数据集。