gpt4 book ai didi

android spinner adapter OnItemSelectedListener 什么是 Row Id

转载 作者:行者123 更新时间:2023-11-29 15:01:41 30 4
gpt4 key购买 nike

我在 android 中使用微调器已经有一段时间了,我总是使用它在 documentation 中所说的内容。我会用 parent.getItemAtPosition(pos)获取项目,或者我会使用 questions like this但问题是:文档说

id in onItemSelected(AdapterView<?> parent, View view, int position,
long id)
is the row id of the selected item

但是是吗!?

这是什么意思?

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

long如果它是 View 的 ID不应该是int吗?

谢谢。

最佳答案

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

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

我希望这张图片能更详细地解释它。否则请参阅 documentation或到 this example .

希望这对您有所帮助。

ArrayAdapter

关于android spinner adapter OnItemSelectedListener 什么是 Row Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43819615/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com