请帮我解决以下问题 =>
getSelectedItemId
和 getSelectedItemPosition
在 spinner
中有什么区别?
请帮我解决以下问题 =>
getSelectedItemId
和 getSelectedItemPosition
在 spinner
中有什么区别?
getSelectedItemPosition()
的工作方式与您预期的一样,它返回仅包含项目的数组中所选项目的位置。例如,当使用以下数组数据创建适配器时:["Alice", "Bob", "Carol", "Dave"]
假设当前选择的是 Carol
,那么这个方法将返回 2
,即数组中 Carol
的索引。
现在来看一下更有趣的部分,getSelectedItemId()
:
如果 Spinner 是使用 SimpleCursorAdapter
等适配器设置的,那么该方法就非常有用。通过传入一个 Cursor,就可以实现数据的填充和管理。该 Cursor 中可能包含两列,分别为 _id
和 someValue
(id 列的名称必须为 _id,第二列可以取任何名称)。
+-----+-------+
| _id | name |
+-----+-------+
| 55 | Alice |
| 67 | Bob |
| 72 | Carol |
| 84 | Dave |
+-----+-------+
假设选择了Carol
,此方法将返回72
,即所选行的“_id”列的值。
当SpinnerAdapter基于“普通数组”时,id和position似乎是相同的,这两种方法都将返回相同的值。
我不能保证这些信息完整且100%准确,但这是我通过试验和错误发现的。