正如我在标题中所述,我在使用多个微调器onitemselectedlistener方法时遇到困难,同时在制表符片段中使用它们。在我的活动中,将有多个选项卡,我可以使用选项卡片段实现它而没有问题。在第一个选项卡中,我向用户显示他们到目前为止输入的内容,通过从db加载数据,在第二个选项卡中,我要求他们提供更多信息。我遇到的问题是第二个标签,我使用了2个不同的微调器。第一个微调器用于显示用户是否已经输入了一些数据,并且其适配器填充了来自db的数据。在第二个中,我只显示一些整数供用户选择。
我加载它们没有问题查看,我可以看到两个适配器都正确填充,但是有一个我无法解决的问题。问题在于我的onItemSelected侦听器。
我使用switch语句在不同的微调器上执行我的操作,如下所示:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
Log.d("logging", "parent id is : " + parent.getId() + " view id is : " + view.getId());
switch (parent.getId()) {
case R.id.sptChooser:
Log.d("logging", "load bf from position : " + position);
loadSPTEntries(position + 1);
break;
case R.id.spinnerBorehole:
sampleDepth = (Double) spinner.getSelectedItem();
Log.d("logging", " value of clicked item is : " + sampleDepth);
double value = sampleDepth + .45;
Log.d("logging", " value of clicked item is after addition : "
+ value);
spinnerAdditionText.setText(" - " + value);
break;
default:
break;
}
}
然而,出于某种原因,我无法从第一个微调器(sptChooser)看到事件,而我可以从(spinnerBorehole)看到日志。有趣的是,在同一视图中,当我将标签更改为第一个标签,然后再次切换回第二个标签时,我可以看到现在我也可以从第一个微调器中捕获项目选择。
对这个问题的任何想法都会非常有用。
提前致谢。
答案 0 :(得分:0)
在深入研究代码之后,我检查了我的db方法,它们是AsyncTask。有趣的是,我可以看到值进入适配器,但它根本不起作用。在事先调用我的db方法之后,我设法没有问题地工作了。
似乎需要先检查asynctask db方法..