有两种方法可以获取列表视图的选定项目。
list.getAdapter().getItem(position);
list.getItemAtPosition(position)
我的问题是,哪一种是首选的方法?
我见过有人同时使用这两种方法。
有两种方法可以获取列表视图的选定项目。
list.getAdapter().getItem(position);
list.getItemAtPosition(position)
我的问题是,哪一种是首选的方法?
我见过有人同时使用这两种方法。
你可以使用你想要的。getItemAtPosition(position)
基本上用 调用适配器getItem(position)
,这是同一回事。
这里是getItemAtPosition()
来自源代码的实现ListView
。
public Object getItemAtPosition(int position) {
T adapter = getAdapter();
return (adapter == null || position < 0) ? null : adapter.getItem(position);
}
所以基本上它们是一样的。
其他答案不正确,有一个很大的不同。
当您将标头添加到 ListView 时,ListView 会将适配器包装在 HeaderViewListAdapter 中。HeaderViewListAdapter 的工作是翻译position
以考虑标题。
例如,如果您添加了一个标头position 1
,对应于底层适配器的position 0
. 如果您尝试使用 adapter.getItem(position) 它实际上会返回适配器中的第二项。
如果您添加了标题,则必须使用 listView.getItemAtPosition(position)。