我对onItemLongClick(...)的第3和第4个参数感到困惑。 根据{{3}}
position - 列表中视图的位置
id - 单击的项目的行ID
我无法从这些中得到任何意义,请提供建议。
答案 0 :(得分:8)
position
是点击元素在您的适配器中的位置(因此您可以执行adapter.getItem(position)
)
row id
是与该元素对应的id,即适配器在getItemId()
方法中返回的内容。
答案 1 :(得分:7)
位置是父中视图的位置。对于ListView
,它是行号。顶行是位置0,第二行是位置1,第三行是位置2,等等。请注意,如果您的ListView
有标题视图(就像您ListView.addHeaderView(View)
那样),那么标题视图将是位置0,实际行将在1开始编号。
有时 id 与位置相同,有时会有所不同。如果您使用的是ArrayAdapter
或SimpleAdapter
,那么它们是相同的(除非有标题视图然后它们被一个关闭)。对于CursorAdapter
(以及SimpleCursorAdapter
), id 会返回表格的行ID,即_id
。 位置是长而不是 int ,因为数据库理论上可以拥有比 int 更多的行,而ListView
不会。
以下是其他一些相关答案:
答案 2 :(得分:1)
位置将返回该位置上的所有名称或值,例如,如果您在列表中显示raj,kamal,prateek
并且位置2被选中,它将显示(返回)kamal
。
如果您要使用行ID,它将返回位于该项目的特定固定数字或ID,例如1,2,3,4 ...
在同一程序上,如果您将选择它将返回2的行ID,对于位置它将返回kamal
。