gpt4 book ai didi

Android: onItemClick() 的位置是相对于可视区域的,而不是整个列表

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:06 24 4
gpt4 key购买 nike

我对 AdapterView.OnItemClickListener 中的某些行为有疑问,这让我有点困惑。

我有一个由自定义 CursorAdapter 支持的 ListView。 Cursor 由 LoaderManager 管理。 ListView 还有一个 OnItemClickListener。数据正确加载并且 ListView 正确填充 - 在这种情况下有很多项目。

我发现 onItemClickposition 参数相对于屏幕上显示的项目而不是整个列表是从 0 开始的。因此,例如,如果我向下滚动并选择第一个可查看的项目,我实际上会得到列表中的第一个项目(不可见),而不是我选择的那个。当我使用调试器时,我看到 position 实际上的值为 0,即使所选项目在列表中更靠后。

奇怪的是,在我开始使用 LoaderManager 之前,它工作正常。

我正在使用 v4 支持库。

如果我这样做:

public void onItemClick( AdapterView<?> parent, View listItem, int position, long id ) {

Cursor c = myListAdapter.getItem( parent.getFirstVisiblePosition() + position );

// do stuff

然后我得到了我实际选择的数据,但我不知何故觉得这是错误的。我不应该使用 getFirstVisiblePosition()

有什么想法吗?

谢谢

最佳答案

我猜您可能正在使用 getView() 方法的 convertView 参数来回收 View 。使用它可能会导致此处出现问题。请尝试使用替代方案并检查问题是否仍然存在

关于Android: onItemClick() 的位置是相对于可视区域的,而不是整个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19774839/

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