我刚刚在我的 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列表的影响——尽管它们仍然只是普通元素。