2013-04-04 58 views
0

我正在绘制一些飞行员。 问题是,我怎么能知道我在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) { 
    //?????????????? 
    } 
+2

给它一个标签,或在某处保留其ID,或保留对其的引用。 – njzk2 2013-04-04 13:07:37

+0

我想过,但是怎么样?我试过但没有收到任何东西 – 2013-04-04 13:15:21

回答

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; 
          } 
+0

谢谢,它的作品,它还活着! – 2013-04-04 16:56:07

0

还有一个更简单的方法来做到这一点。

创建一个微调器,向他添加一个id。

Spinner spinner = new Spinner(context); 
spinner.setId(R.id.defined); 

然后将ID添加到值文件夹中的id.xml文件。 这样的:

<item name="defined_0" type="id"/> 
<item name="defined_1" type="id"/> 

你的目的就派上用场了,通过defined_0 + 1代表的ID是一样的defined_1。所以,你可以在你的程序中添加的ID for循环

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 
    } 
}