gpt4 book ai didi

android - 如何将 ArrayAdapter.getView() 中的 'position' 参数转换为基础数据的绝对索引?

转载 作者:行者123 更新时间:2023-11-29 21:30:50 27 4
gpt4 key购买 nike

假设我们有一个可以一次显示 5 个项目的 ListView。我们有(例如)100 个项目要通过此 ListView 显示。当我们滚动浏览此列表时,ListView 调用 ArrayAdapter.getView(int position, ...) 以获取新 View 。

问题是参数“位置”永远不会超过“5”,因为我们示例中的 ListView 不能一次显示超过 5 个项目。但是当用户单击一个项目时,我到底应该如何知道这个选定项目代表 ArrayAdapter 中的哪个成员/索引/位置/...?

假设我们向下滚动查看以下内容:


项目 56

项目 57

项目 58

项目 59

项目 60

现在,当用户单击“项目 58”时,位置参数等于“2”,而我想获得“58”。同样,“项目 59”会将“位置”设置为“3”,而我想要“59”。我能做什么?

最佳答案

好吧,我创建了一个带有 ListView 的示例应用程序(基于 1.5 章中 http://www.vogella.com/articles/AndroidListView/article.html 的代码)并覆盖了适配器中的 getView 方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("getView " + String.valueOf(position));
return super.getView(position, convertView, parent);
}

然后我在滚动后运行应用程序和输出(每个屏幕 10 个 View ):0...9 第一个屏幕然后是 10..19。

所以参数位置超出了 getView 中的 views_number_per_screen。请参阅 Activity 示例代码:http://pastebin.com/tvKv8kBu

关于android - 如何将 ArrayAdapter.getView() 中的 'position' 参数转换为基础数据的绝对索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19564441/

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