在onCreate()
我使用setOnItemSelectedListener()
给微调器。然后在onResume()
中,我在同一个微调器上调用setSelection()
。发生的事情是监听器被调用,但事件不是我预期发生的顺序。如果我的代码如下:
sp1.setOnItemSelectedListener(...
@Override
public void onItemSelected(){...
Log.e("marker", "stage 2");
...}
...});
和
Log.e("marker", "stage 1");
sp1.setSelection(1, true);
Log.e("marker", "stage 3");
在LogCat中,事件按此顺序发生:stage1,stage3,然后是stage 2.显然,我希望它是stage1,stage2,然后是stage3。我该如何做到这一点?
答案 0 :(得分:0)
如果你真的需要这个,那么你可以在调用setSelection()
之前删除监听器,然后直接调用onItemSelected()
(这是一个丑陋但简单的解决方案)