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