请在以下=>
中帮助我 getSelectedItemId
getSelectedItemPosition
和spinner
之间的区别是什么
答案 0 :(得分:1)
我知道这很老了,但是我发现了以下内容供以后参考:
getSelectedItemPosition()
可以按预期工作,并在仅包含项目的数组中返回所选项目的位置。例如,当使用以下数组数据创建适配器时
["Alice", "Bob", "Carol", "Dave"]
并假设当前选择了Carol
,此方法将返回2
,即数组中Carol
的索引。
现在,更有趣的部分是getSelectedItemId()
:
例如,在使用SimpleCursorAdapter
设置微调器时,可以使用此方法,因此填充的数据基于游标。此光标使您可以拥有两列_id
和someValue
(id列名称必须为 _id ,第二列可以称为任何名称)。
给定以下光标
+-----+-------+
| _id | name |
+-----+-------+
| 55 | Alice |
| 67 | Bob |
| 72 | Carol |
| 84 | Dave |
+-----+-------+
再次给出选择Carol
的情况,该方法将返回72
,因此所选行的'_id'列的值。
当SpinnerAdapter基于“普通数组”时,id和位置似乎相同,并且这两种方法将返回相同的值。
我不保证此信息的完整性和100%的准确性,但这是到目前为止我通过反复试验发现的信息。
答案 1 :(得分:0)
public long getSelectedItemId ()
返回与当前所选项目对应的ID,如果未选择任何内容,则返回INVALID_ROW_ID。
public int getSelectedItemPosition ()
返回适配器数据集中当前所选项目的位置。它 回报 int Position(从0开始),如果没有选择,则为INVALID_POSITION。