android spinner adapter OnItemSelectedListener什么是行ID

pou*_*uya 1 android spinner onitemselectedlistener

我在Android中使用Spinner已有一段时间了,我一直使用文档中的内容, 并且会使用它parent.getItemAtPosition(pos)来获取Item,或者我会使用类似这样的问题,但问题是:文档说

id in onItemSelected(AdapterView<?> parent, View view, int position, long id)是所选项目的行ID

但是!!

这意味着什么?

如果选择的是行ID,我如何获取或设置它?

它是long如果它是一个的Id View不是它应该是int

谢谢。

Mat*_*ias 5

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

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

我希望这张图片能更详细地解释它。否则,请参考文档本示例

希望这可以帮助。

阵列适配器