旋转的飞行员。我如何识别每个微调器?

时间:2013-04-04 13:05:34

标签: android

我正在画一些旋转器。 问题是,我怎么知道我在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 个答案:

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