android中微调器的getSelectedItemId和getSelectedItemPosition有什么区别

sar*_*mar 4 android android-spinner

请帮助我进行以下操作 =>

getSelectedItemId和的getSelectedItemPosition有什么区别 spinner

vir*_*tum 7

我知道这已经很老了,但为了将来参考,这里是我发现的:

getSelectedItemPosition()如您所愿,并返回所选项目在仅包含项目的数组中的位置。例如,当使用以下数组数据创建适配器时

["Alice", "Bob", "Carol", "Dave"]
Run Code Online (Sandbox Code Playgroud)

并且给定Carol当前被选中,此方法将返回数组中2的索引Carol


现在是更有趣的部分,getSelectedItemId():当使用例如 a 设置微调器时可以使用此方法SimpleCursorAdapter,因此填充的数据基于游标。此游标使您可以拥有两列,_id并且someValue(id 列名称必须是_id,第二列可以称为任何名称)。鉴于以下光标

+-----+-------+
| _id | name  |
+-----+-------+
|  55 | Alice |
|  67 | Bob   |
|  72 | Carol |
|  84 | Dave  |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)

再次给出,Carol即被选中,此方法将返回72,因此所选行 '_id' 列的值。

当 SpinnerAdapter 基于“普通数组”时,id 和 position 似乎相同,并且两种方法都将返回相同的值。


我不保证这些信息是完整的和 100% 准确的,但这是我迄今为止通过反复试验发现的信息。