具有OnItemSelectedListener的Android多个微调器

时间:2014-08-20 14:06:05

标签: android android-fragments android-spinner

正如我在标题中所述,我在使用多个微调器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)看到日志。有趣的是,在同一视图中,当我将标签更改为第一个标签,然后再次切换回第二个标签时,我可以看到现在我也可以从第一个微调器中捕获项目选择。

对这个问题的任何想法都会非常有用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在深入研究代码之后,我检查了我的db方法,它们是AsyncTask。有趣的是,我可以看到值进入适配器,但它根本不起作用。在事先调用我的db方法之后,我设法没有问题地工作了。

似乎需要先检查asynctask db方法..