0

我有一种带有 3 个 Spinner 的表格。2 个 Spinner (minorSpinner) 的内容取决于第一个 (mainSpinner) 的选择。更准确地说,我在 mainSpinner 的 onItemSelected 监听器中设置了这 2 个 minorSpinner 的内容。

表格可以保存并再次加载。

问题是:当我尝试加载表单时,首先设置 mainSpinner,然后设置 minerSpinner。

喜欢:

mainSpinner.setSelection(value);
minorSpinner1.setSelection(value1);
minorSpinner2.setSelection(value2);

不幸的是,minorSpinner 没有及时准备好。也许是因为它们的值是在 UI 线程中设置的?

问题:

如何等到他们准备好?

我尝试了什么:

runOnUIThread(){
mainSpinner.setSelection(value);
minorSpinner1.setSelection(value1);
minorSpinner2.setSelection(value2);
}

但 ti 不起作用:(

任何想法?

4

1 回答 1

0

如何等到他们准备好?

所以我的第一个想法是注册OnItemSelectedListener()所有 Spinners。

然后创建两个布尔变量,例如 isSpinnerOneSelected、isSpinnerTwoSelected,当您从 Spinner 中选择项目时,将变量赋值为 true。

然后创建一些Thread(使用 Handler)来控制你的状态。如果两个变量都赋值为 true,则只需使用第三个 Spinner 执行操作。

如果你不知道如何使用 Handler,请看:

于 2013-08-02T21:09:18.380 回答