我有2个旋转器, 使用AsyncTask从数据库加载每个微调器的数据
我使用此
调用AsyncTasksnew PopulateSpinnerA().execute();
如果我只为一个Spinner调用一个AsyncTask
,它就可以工作BUT!
我有2个Spinners,所以我为每个Spinner调用AsyncTask,就像这样
new PopulateSpinnerA().execute(); // for Spinner A
new PopulateSpinnerB().execute(); // for Spinner B
我运行它并且我的app强制关闭
溶液?
更新<!/强>
我从下面的某个人那里得到灵感,他们用真假回答
我使用布尔值(使用true和false)来生成我的两个微调器
首先我制作一个布尔变量
Boolean SPN = false;
然后我创建一个函数来检查布尔值并将其放在onCreate()函数
上private void cek(){
if(!SPN){
new populateSpinnerA().execute();
}
if(SPN){
new populateSpinnerB().execute();
}
}
在populateSpinnerA()上的我只是把这2行用来运行第二个微调器的AsyncTask
SPN = true;
cek();
和
BOOM!
完成了:D
答案 0 :(得分:1)
一次不能有两个微调器。在这种情况下需要使用任何技巧,
参考下面的伪代码。
postExecute(){
If(taskCompletedFlag == true){
//Code to cancel the spinner.
taskCompletedFlag = false;
}else{
taskCompledtedFlag = true;
}
}
P.S。 - 如果您不知道哪个AsyncTask将首先启动,您可以在那里使用相同的机制。