【发布时间】:2014-08-20 23:56:13
【问题描述】:
正如我在标题中所说,在标签片段中使用多个微调器 onitemselectedlistener 方法时,我遇到了困难。在我的活动中,会有超过 1 个选项卡,我可以使用选项卡片段毫无问题地实现它。在第一个选项卡中,我通过从 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) 的日志。有趣的是,在同一个视图中,当我将选项卡更改为第一个选项卡,然后再次切换回第二个选项卡时,我可以看到现在我也可以从第一个微调器捕获项目选择。
任何关于这个问题的想法都会非常有帮助。
提前致谢。
【问题讨论】:
-
第二个标签中是否有多个微调器?可以尝试在不同的 Spinner 上添加不同的 OnItemSelectedListener
-
是的@calvinfly,多个微调器在第二个选项卡中。我尝试使用不同的 OnItemSelectedListener,但行为仍然相同。
-
在不同的OnItemSelectedListener中,使用switch来区分Spinner?
-
不,我也使用了不同的侦听器,但没有使用 switch case 实现通用方法,但会发生相同的行为。我会试试你的网站,然后让你知道。非常感谢。
-
不幸的是,相同的行为是持续存在的。
标签: android android-fragments android-spinner