【问题标题】:Building a custom List构建自定义列表
【发布时间】:2013-01-15 15:44:37
【问题描述】:

我正在尝试使用 ArrayAdapter 从对象生成列表。结果如下:

项目 A (3) 项目 B (1) 项目 C (0)

括号中的数字表示该文件后面的项目数量。只要括号中有 1,我就想显示图像 - 在这种情况下,仅适用于 B 项。

我有一个可用的属性图像,仅当项目具有 1 时才设置为 true。

但是,当我创建列表时,它会在任何地方创建图像,除了在项目 C 中。我创建了一个简短的日志来尝试了解原因并发现,public View getView(int position, View convertView, ViewGroup parent) { 方法最多调用 11次...虽然第一个 3 应该足够了。当我修改我的 if 子句时,它应该在检测到项目时将 imageavailable 设置为 false - 只有第一个项目有图片。谁能帮我吗? (我也尝试让 if(imageavailable&number==1) 产生相同的结果 - 1st 2 有一张图片

【问题讨论】:

    标签: android eclipse listview android-arrayadapter


    【解决方案1】:

    您应该管理适配器,而不是向 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 作为示例,因为您说的是图像。这可以是任何你想要的,只要你改变逻辑来处理那个特定的数据集。

    【讨论】:

    • 这对我构建没有帮助
      项目 A (3)
      项目 B (1) 图片
      项目 C (0)
      项目 D (2)
      项目 E (1) 就我所见的图片;我想写更多,但出现格式错误 - 我的源代码在真实设备上运行良好,所以我不知道问题是什么
    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 2014-12-10
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多