Android Spinner.setSelection()不起作用

mas*_*asi 12 android spinner

我有一个旋转器,里面装满了一个CursorAdapter.现在,当创建该微调器(动态)时,我想将默认选择设置为0(0是CursorAdapter列表中的第一项)

所以我得到了一个在创建对象后调用的作业的setter.但由于某种原因,无论我在该setter中传递什么,0总是被传递给onItemSelected()Spinner中的方法OnItemSelectedListener.

但是,如果我等到第一次初始选择发生并再次运行我的二传手,一切正常.所以,为了使它更清楚,我在调试器中看到的是:

  • 对象(微调器)已创建
  • 附加微调器监听器
  • setter运行,一个数字,让我们说4(微调器包含多于4个选项的方式)传递给setSelection()方法
  • 等一会儿
  • 现在onItemSelected()是第一次运行,但该方法的位置为0!
  • 等一下
  • 我们再次运行二传手
  • 再次onItemSelected()运行,这个时间,给出的位置是4,因为它应该是!

现在那是有线的.似乎不可能设置该微调器直到第一个初始选择(始终为0)运行.那么为什么它是这样的,我该怎么做才能设置初始选择?

ase*_*ovm 31

尝试Spinner#setSelection (int position, boolean animate)使用animate = false.我记得有一段时间我有一个类似的问题,这就是诀窍.内部实现似乎与动画部分的差异有所不同.