有没有办法获取在 OnItemSelectedListener 中更改的 Spinner 对象?
Is there a way to get the Spinner object that was changed in OnItemSelectedListener?
我有一个具有相同 OnItemSelectedListener 的微调器数组,但我需要知道选择了哪个微调器(最好是我可以获得数组索引的位置),以便我可以将它作为另一个数组的索引传递。
这些是我的微调器:
insulSpinners = new Spinner[6];
insulSpinners[0] = (Spinner) v.findViewById(R.id.insulSpin1);
insulSpinners[1] = (Spinner) v.findViewById(R.id.insulSpin2);
insulSpinners[2] = (Spinner) v.findViewById(R.id.insulSpin3);
insulSpinners[3] = (Spinner) v.findViewById(R.id.insulSpin4);
insulSpinners[4] = (Spinner) v.findViewById(R.id.insulSpin5);
insulSpinners[5] = (Spinner) v.findViewById(R.id.WireSpin);
awcSpinners = new Spinner[6];
awcSpinners[0] = (Spinner) v.findViewById(R.id.awcSpin1);
awcSpinners[1] = (Spinner) v.findViewById(R.id.awcSpin2);
awcSpinners[2] = (Spinner) v.findViewById(R.id.awcSpin3);
awcSpinners[3] = (Spinner) v.findViewById(R.id.awcSpin4);
awcSpinners[4] = (Spinner) v.findViewById(R.id.awcSpin5);
awcSpinners[5] = (Spinner) v.findViewById(R.id.awcSpin6);
for (int i = 0; i < 6; i++) {
insulSpinners[i].setOnItemSelectedListener(insuls);
awcSpinners[i].setOnItemSelectedListener(awcs);
}
我需要来自侦听器的第 n 个 insulSpinners 微调器,这样我就可以将函数应用于 awcSpinners 的第 n 个微调器。在函数中使用在 insulSpinner 上选择的文本。任何想法将不胜感激。
OnItemSelectedListener 有两个方法。
onItemSelected(AdapterView<?> parent, View view, int position, long id)
onNothingSelected(AdapterView<?> parent)
两者都给你用过的旋转器作为参考AdapterView<?> parent
。
您可以将每个旋转器的索引添加为标签,然后您可以查看标签。从标签中,您可以推断出微调器的索引。
例如
int[] ids = {R.id.insulSpin1, R.id.insulSpin2, ...}
for (int idx = 0; idx < ids.length(); i++) {
Spinner spinner = (Spinner) v.findViewById(ids[idx])
spinner.setTag(idx); // you may need to wrap it in an Integer object
insulSpinners[idx] = spinner
}
// and then in your onItemSelected method callback
void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int tag = (Integer) parent.getTag()
Spinner selectedSpinner = insulSpinners[tag]
// do something...
}
我有一个具有相同 OnItemSelectedListener 的微调器数组,但我需要知道选择了哪个微调器(最好是我可以获得数组索引的位置),以便我可以将它作为另一个数组的索引传递。
这些是我的微调器:
insulSpinners = new Spinner[6];
insulSpinners[0] = (Spinner) v.findViewById(R.id.insulSpin1);
insulSpinners[1] = (Spinner) v.findViewById(R.id.insulSpin2);
insulSpinners[2] = (Spinner) v.findViewById(R.id.insulSpin3);
insulSpinners[3] = (Spinner) v.findViewById(R.id.insulSpin4);
insulSpinners[4] = (Spinner) v.findViewById(R.id.insulSpin5);
insulSpinners[5] = (Spinner) v.findViewById(R.id.WireSpin);
awcSpinners = new Spinner[6];
awcSpinners[0] = (Spinner) v.findViewById(R.id.awcSpin1);
awcSpinners[1] = (Spinner) v.findViewById(R.id.awcSpin2);
awcSpinners[2] = (Spinner) v.findViewById(R.id.awcSpin3);
awcSpinners[3] = (Spinner) v.findViewById(R.id.awcSpin4);
awcSpinners[4] = (Spinner) v.findViewById(R.id.awcSpin5);
awcSpinners[5] = (Spinner) v.findViewById(R.id.awcSpin6);
for (int i = 0; i < 6; i++) {
insulSpinners[i].setOnItemSelectedListener(insuls);
awcSpinners[i].setOnItemSelectedListener(awcs);
}
我需要来自侦听器的第 n 个 insulSpinners 微调器,这样我就可以将函数应用于 awcSpinners 的第 n 个微调器。在函数中使用在 insulSpinner 上选择的文本。任何想法将不胜感激。
OnItemSelectedListener 有两个方法。
onItemSelected(AdapterView<?> parent, View view, int position, long id)
onNothingSelected(AdapterView<?> parent)
两者都给你用过的旋转器作为参考AdapterView<?> parent
。
您可以将每个旋转器的索引添加为标签,然后您可以查看标签。从标签中,您可以推断出微调器的索引。
例如
int[] ids = {R.id.insulSpin1, R.id.insulSpin2, ...}
for (int idx = 0; idx < ids.length(); i++) {
Spinner spinner = (Spinner) v.findViewById(ids[idx])
spinner.setTag(idx); // you may need to wrap it in an Integer object
insulSpinners[idx] = spinner
}
// and then in your onItemSelected method callback
void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int tag = (Integer) parent.getTag()
Spinner selectedSpinner = insulSpinners[tag]
// do something...
}