我正在画一些旋转器。 问题是,我怎么知道我在onItemSelected中使用。
示例:
for (int i = 0; i <5; i + +) {
sp = new Spinner (this);
sp.setAdapter (un_adapter);
sp.setOnItemSelectedListener (this);
}
我正在使用什么旋转器?
public void onItemSelected (AdapterView <?> arg0, View view, int pos, long id) {
//??????????????
}
答案 0 :(得分:1)
您可以使用setTag和getTag来识别当前的微调器。即
for (int i = 0; i <5; i + +) {
sp = new Spinner (this);
sp.setAdapter (un_adapter);
sp.setTag(i.toString());
sp.setOnItemSelectedListener (this);
}
并且可以像
一样public void onItemSelected(AdapterView<?> arg0, View v, int p,
long arg3) {
arg0.getTag;
}
答案 1 :(得分:0)
有一种更简单的方法可以做到这一点。
创建一个微调器,为他添加一个id。
Spinner spinner = new Spinner(context);
spinner.setId(R.id.defined);
然后在Values文件夹中的id.xml文件中添加一个id。 像这样:
<item name="defined_0" type="id"/>
<item name="defined_1" type="id"/>
为了您的目的,将定义由defined_0 + 1表示的id与defined_1相同。因此,您可以在for循环中以编程方式添加ID
for (int i = 0; i <5; i + +) {
sp = new Spinner (this);
sp.setId(R.id.defined_0+i);
sp.setAdapter (un_adapter);
sp.setOnItemSelectedListener (this);
}
如果你这样说, id defined_1将链接到微调器编号2. =)
public void onItemSelected (AdapterView <?> arg0, View view, int pos, long id) {
if (view.getID == R.id.defined_0){
//whatever is supposed to happen if Spinner 1 is selected/used
}
}