我有一个以编程方式打开的微调器。它弹出并且似乎工作正常,但由于某种原因,我的OnItemSelectedListener不会触发其中的任何事件。
public class BeerConverter extends Activity {
ArrayAdapter<CharSequence> adapter3;
Spinner spinner03;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner03 = new Spinner(this);
adapter3 = new ArrayAdapter<CharSequence> (this, android.R.layout.simple_spinner_item);
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner03.setAdapter(adapter3);
spinner03.setOnItemSelectedListener(new MyOnItemSelectedListener3());
adapter3.add("Stuff");
spinner03.performClick();
}
然后我将监听器创建为嵌套类:
public class MyOnItemSelectedListener3 implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parentview, View v,int position, long id){
curPos = position;
Context context = getApplicationContext();
CharSequence text = "Test text. If you see this, it means MyOnItemSelectedListener3 was called.";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
public void onNothingSelected(AdapterView<?> arg0)
{
//do nothing
}
};
因此,当我发送spinner03.performClick();
时,Spinner会正确弹出,但是当Spinner中的某个项目被选中时,它只会关闭并且不会调用OnItemSelectedListener。一段时间它看起来像this person had the same problem,但最终没有发布解决方案。
答案 0 :(得分:2)
正如上面的评论帖子所暗示的那样,如果有问题的视图没有附加到窗口,很多(如果不是所有)与视图相关的事件都不会按预期运行。不要使用未连接的视图来驱动任何类型的用户交互。
答案 1 :(得分:2)
我遇到了同样的问题。我通过设置微调器可见性而不是“Gone”来修复它。