android spinner adapter OnItemSelectedListener什么是Row Id

时间:2017-05-06 10:57:54

标签: android spinner onitemselectedlistener

我现在在android中使用spinner一段时间了,我总是使用documentation中的内容,我会使用parent.getItemAtPosition(pos)来获取Item,或者我会使用{{3}但问题是:文档说

  onItemSelected(AdapterView<?> parent, View view, int position, long id)中的

id是所选项目的行ID

但是它!?

这是什么意思?

如果选择了行的Id,我该如何获取或设置它?

如果long的ID不是View,那么它是int吗?

感谢。

1 个答案:

答案 0 :(得分:4)

您必须了解适配器在Android中的工作原理。基本上他们拿着一份物品清单。通常是一个数组(ArrayAdapter)或一个列表。该列表具有固定排序的项目。项目1在索引0处,依此类推。但是如果这是list通过ArrayAdapter绑定到ListView,则会要求ArrayAdapter为屏幕上可见的每一行创建一个视图。然后用相应的项初始化每一行(视图)。

这些项目可能会以不同的顺序显示,例如字母升序。因此,位置是基础数组中项目的位置,这是固定的。而 rowId 是列表中显示在屏幕上的位置。 ListView中的行数通常比ArrayAdapter处理的基础列表小得多。在屏幕外滚动的这些行将重新用于进入屏幕的那些行。这样重用的行将由数组中的新项重新初始化(请参阅ArrayAdapter.getView中的参数convertView)。

我希望这张图片能够更详细地解释它。否则,请参阅documentationthis example

希望这有帮助。

ArrayAdapter