我是一名有用的助手,能够翻译文本。
当用户选择时,一切都正常,但是当我使用
问题出在这里。第一次旋转器大小为1,但在设置选择后,监听器不调用,第二个旋转器也不创建。
我还以为这是因为时间消耗行动,所以尝试使用可运行的和发布一些延迟,但它没有起作用。
我有一个活动,其中有许多级联的微调器。在选择第一个微调器后,第二个微调器会初始化并填充数据,然后在从第二个微调器选择项目后,第三个微调器会初始化并填充数据,依此类推。
对于每个微调器,我都像这样创建它们,并且是迭代的:
public ArrayList<MaterialSpinner> spinnerlist = new ArrayList<>();
public void createView(){
final MaterialSpinner spinner = new MaterialSpinner(context);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){//...after select item next spinner creates with calling createView() iteratively}
loadSpinnerData(); // set adapter and more
spinnerlist.add(spinner);
}
当用户选择时,一切都正常,但是当我使用
setSelection(positionOfItem)
进行动态设置时,不幸的是,spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
没有被调用。我不知道为什么会发生这种情况。 for (int i = 0; i < some_value; i++) {
int positionOfItem = get_proper_position;
spinnerList.get(i).setSelection(positionOfItem); //this not trigger onItemSelect!
}
问题出在这里。第一次旋转器大小为1,但在设置选择后,监听器不调用,第二个旋转器也不创建。
我还以为这是因为时间消耗行动,所以尝试使用可运行的和发布一些延迟,但它没有起作用。