我刚刚在我的 ListView 中添加了一个标题,我必须更改一堆代码,因为标题基本上变成了位置 0(这意味着我的 CursorAdapter 的光标索引与列表的索引不对齐。它们偏离了 1现在)。为什么?这对我来说似乎有点愚蠢。
我能想到的唯一原因是开发人员可能想要访问标题。美好的。提供类似 getListView().getHeader() 的东西。
我刚刚在我的 ListView 中添加了一个标题,我必须更改一堆代码,因为标题基本上变成了位置 0(这意味着我的 CursorAdapter 的光标索引与列表的索引不对齐。它们偏离了 1现在)。为什么?这对我来说似乎有点愚蠢。
我能想到的唯一原因是开发人员可能想要访问标题。美好的。提供类似 getListView().getHeader() 的东西。
由于某种原因,position
(来自onItemClick
)与ListView
(而不是适配器)中的项目数相关,包括页眉和页脚。当您设置 an 时,OnItemClickListener
您应该通过调用listView.getItemAtPosition(position)
而不是adapter.getItem(position)
.
事实上,您应该始终使用getItemAtPosition
, 因为这样无论您ListView
是否有页眉和页脚,并且如果您添加新的页眉,您将不需要更改您的代码。
如果你不希望你的标题是可选的,你应该以这种方式添加它listView.addHeaderView(headerView, null, false)
:
我相信 aListView
只不过是一个View
元素列表。如果您向您ListView
的ListAdapter
. 唯一的小区别是页眉(和页脚)元素将被固定并且不受ListAdapter
列表的影响——尽管它们仍然只是普通元素。