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

时间:2011-04-30 18:24:40

标签: android listview

我对onItemLongClick(...)的第3和第4个参数感到困惑。 根据{{​​3}}

position - 列表中视图的位置

id - 单击的项目的行ID

我无法从这些中得到任何意义,请提供建议。

3 个答案:

答案 0 :(得分:8)

position是点击元素在您的适配器中的位置(因此您可以执行adapter.getItem(position)

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

答案 1 :(得分:7)

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

有时 id 位置相同,有时会有所不同。如果您使用的是ArrayAdapterSimpleAdapter,那么它们是相同的(除非有标题视图然后它们被一个关闭)。对于CursorAdapter(以及SimpleCursorAdapter), id 会返回表格的行ID,即_id位置而不是 int ,因为数据库理论上可以拥有比 int 更多的行,而ListView不会。

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

答案 2 :(得分:1)

位置将返回该位置上的所有名称或值,例如,如果您在列表中显示raj,kamal,prateek并且位置2被选中,它将显示(返回)kamal

如果您要使用行ID,它将返回位于该项目的特定固定数字或ID,例如1,2,3,4 ...在同一程序上,如果您将选择它将返回2的行ID,对于位置它将返回kamal