android中的spinner的getSelectedItemId和getSelectedItemPosition有什么区别?

时间:2013-10-21 13:46:08

标签: android android-spinner

请在以下=>

中帮助我

getSelectedItemId

getSelectedItemPositionspinner之间的区别是什么

2 个答案:

答案 0 :(得分:1)

我知道这很老了,但是我发现了以下内容供以后参考:

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

["Alice", "Bob", "Carol", "Dave"]

并假设当前选择了Carol,此方法将返回2,即数组中Carol的索引。


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

+-----+-------+
| _id | name  |
+-----+-------+
|  55 | Alice |
|  67 | Bob   |
|  72 | Carol |
|  84 | Dave  |
+-----+-------+

再次给出选择Carol的情况,该方法将返回72,因此所选行的'_id'列的值。

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


我不保证此信息的完整性和100%的准确性,但这是到目前为止我通过反复试验发现的信息。

答案 1 :(得分:0)

来自developer.android.com

public long getSelectedItemId ()

返回与当前所选项目对应的ID,如果未选择任何内容,则返回INVALID_ROW_ID。

public int getSelectedItemPosition ()

返回适配器数据集中当前所选项目的位置。它 回报 int Position(从0开始),如果没有选择,则为INVALID_POSITION。