有两种方法可以获取列表视图的选定项目。
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)。