看起来 android 的 Spinner 类(可能还有一般的 ListView,虽然我不确定)调用你的 OnItemSelectedListener 的 onItemSelected()
调用 setAdapter()
后的方法,即使用户尚未明确选择任何内容。
我知道这在很多情况下会有用,但有时我只想要 onItemSelected()
在实际特别选择项目时调用。
有没有办法控制这种行为并让 Spinner 不调用 onItemSelected()
设置适配器后?
最佳答案
我已经很长时间没有使用这个解决方案了,所以我不完全相信它能按预期工作,但到目前为止我很幸运地使用了这个解决方法:
spinner.setOnItemSelectedListener( new OnItemSelectedListener() {
protected Adapter initializedAdapter = null;
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Always ignore the initial selection performed after setAdapter
if( initializedAdapter !=parent.getAdapter() ) {
initializedAdapter = parent.getAdapter();
return;
}
...
}
}
有没有更好的办法?
关于android - 设置适配器时如何避免让android微调器调用onitemselectedlistener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637704/