Android:Spinner下拉列表中所选项目位于顶部位置

Bra*_*rad 6 android spinner

Android中的Spinner存在问题.从下拉列表中选择项目将在下次打开时调整该下拉列表的偏移量.因此,例如,如果我在500项下拉列表中选择项目100,则下次打开下拉列表时,项目100将位于列表的顶部.这是我想要的行为.

当我将选择器功能与调用结合起来时似乎存在问题setSelection(int).通过以下步骤,我似乎打破了下拉式微调器上的偏移系统.

  • 打开微调器并选择第二个项目.
  • 再次打开微调器,这次忽略它而不选择任何东西.
  • 调用setSelection(int)Spinner的值大于2.
  • 第三次打开微调器.请注意,偏移量与步骤1中的偏移量相同.

我已经看过Spinner和AdapterView中的代码,但我看不到任何我错过的公共电话.这是Spinner中的错误还是我的代码中的错误?

Utk*_*rek 1

我认为您可以通过将列表发送到适配器来解决该问题。当选择一个项目时,对列表进行排序,然后使用适配器的notifyDataSetChanged()函数。当您再次调用 setSelection(int) 函数时,对列表进行排序并使用 notificationDataSetChanged() 函数。