在不调用 onItemSelected 的情况下设置 Spinner Adapter

Set Spinner Adapter without calling onItemSelected

我的代码是这样的。

spinner.setAdapter(mAdapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
chosenPosition = position;
spinner.setEnabled(false);
}

我的意图是保存用户选择的位置并存储它并立即禁用微调器。但是,当我设置适配器时,第一个项目会自动被选中并且微调器被禁用。如何防止它在设置适配器时调用 onItemSelected 方法?

谢谢。

在顶部定义一个标志,例如:

boolean isFirstSelection = true;

并在您的 onItemSelected 方法中:

spinner.setEnabled(isFirstSelection);
if(isFirstSelection)    {
     isFirstSelection = !isFirstSelection;
}