![](/img/trans.png)
[英]Spinner.setSelection doesn't trigger OnItemSelectedListener properly
[英]Android Spinner.setSelection() doesn't work
我有一个用CursorAdapter
填充的微调器。 现在,当创建该微调器(动态)时,我想将默认选择设置为0(0是CursorAdapter
列表中的第一个项)
所以我得到了一个在创建对象后调用的作业的setter。 但由于某种原因,无论我在该setter中传递什么,0总是传递给Spinner的OnItemSelectedListener
的onItemSelected()
方法。
但是,如果我等到第一次初始选择发生并再次运行我的二传手,一切正常。 所以,为了使它更清楚,我在调试器中看到的是:
setSelection()
方法 onItemSelected()
第一次运行,但给该方法的位置是0! onItemSelected()
运行,这个时间,给出的位置是4,因为它应该是! 现在那是有线的。 似乎不可能设置该微调器直到第一个初始选择(始终为0)运行。 那么为什么它是这样的,我该怎么做才能设置初始选择?
尝试使用animate = false的Spinner#setSelection (int position, boolean animate)
。 我记得有一段时间我有一个类似的问题,这就是诀窍。 内部实现似乎与动画部分的差异有所不同。
如果您知道默认选择的微调器项,则可以按如下方式编写:
Spinner sp = (Spinner) findViewById(R.id.spinner);
sp.setSelection(0); // sets the first item
更改微调器项目选择时,将调用onItemselectedlistener。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.