gpt4 book ai didi

android - 在 Android 中迭代 ListView 项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:41 25 4
gpt4 key购买 nike

我想将项目列表迭代到 ListView 中。下面的代码不足以将所有项目迭代到列表中,因为 getChildCount() 函数的怪异行为仅返回可见项目计数。

for (int i = 0; i < list.getChildCount(); i++) {
item = (View)list.getChildAt(i);
product = (Product)item.getTag();
// make some visual changes if product.id == someProductId
}

我的屏幕显示 7 个结果,当列表中的项目超过 7 个时,无法访问第 8 个左右的项目。只有可见的项目。

我应该改用 ListIterator 吗?

谢谢。

最佳答案

您需要自定义您的列表适配器的 getView() 方法,并将您的支票放入其中以检查当前项目的 id 是否匹配:

Product product = items.get(position);
if(product.id == someProductId) {
//make visual changes
} else {
//reset visual changes to default to account for recycled views
}

由于通常只有可见项仅在特定时间存在,因此只要需要查看更多项,就会调用 getView。它们是在那个时候创建​​的,通常从列表中现在不可见的项目中回收 View (因此,如果条件不匹配,为什么要重置更改)。

关于android - 在 Android 中迭代 ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com