我有一种带有3个Spinners的表格。 2个Spinners(minorSpinner)的内容取决于第一个(mainSpinner)的选择。更确切地说,我在mainSpinner的onItemSelected侦听器中设置了这两个minorSpinner的内容。
可以保存表单并重新加载。
问题是: 当我尝试加载表单时,首先我设置mainSpinner然后设置minerSpinners。
像:
mainSpinner.setSelection(value);
minorSpinner1.setSelection(value1);
minorSpinner2.setSelection(value2);
不幸的是,MinorSpinners没有及时准备好。也许是因为它们的值是在UI线程中设置的?
问题:
如何等到他们准备好了?
我尝试了什么:
runOnUIThread(){
mainSpinner.setSelection(value);
minorSpinner1.setSelection(value1);
minorSpinner2.setSelection(value2);
}
但是ti不起作用:(
有什么想法吗?
答案 0 :(得分:0)
如何等到他们准备好了?
所以我的第一个想法是为所有Spinners注册OnItemSelectedListener()
。
然后创建两个布尔变量,例如isSpinnerOneSelected,isSpinnerTwoSelected,当您从Spinner中选择项目时,将变量赋值为true。
然后创建一些将控制您的状态的Thread
(使用Handler)。如果两个变量都分配为true,则只需使用第三个Spinner进行操作。
如果您不知道如何使用Handler,请查看: