onItemLongClick参数中RowId和Position之间的差异

Yao*_*hen 13 android listview

我对onItemLongClick(...)的第3和第4个参数感到困惑.根据AdapterView.OnItemLongClickListener

position - 列表中视图的位置

id - 单击的项的行ID

我不能从这些中得到任何意义,请指教.

dmo*_*mon 8

position是单击元素在适配器中的位置(所以你可以这样做adapter.getItem(position))

row id是与该元素对应的id,即适配器在getItemId()方法中返回的内容.

  • 一个非常好的问题不是一个令人满意的答案 (2认同)

Sur*_*gch 7

位置视图视图的位置.对于a ,它是行号.顶行是位置0,第二行是位置1,第三行是位置2,等等.请注意,如果你有一个标题视图(就像你做的那样),那么标题视图将是位置0,实际行将是从1开始编号.ListViewListViewListView.addHeaderView(View)

有时id位置相同,有时它是不同的.如果你使用的是ArrayAdapter或者SimpleAdapter它们是相同的(除了有一个标题视图,然后它们被一个关闭).对于a CursorAdapter(以及因此a SimpleCursorAdapter),id返回表的行id,即_id.Position是一个long而不是int,因为理论上数据库可以拥有比int更多的行,而a则ListView不会.

以下是一些其他相关答案: