Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android如何检索动态添加的微调器的值_Android_Android Spinner - Fatal编程技术网

Android如何检索动态添加的微调器的值

Android如何检索动态添加的微调器的值,android,android-spinner,Android,Android Spinner,我通过解析XML文件在应用程序中动态添加微调器 我已经使用了下面的代码 List<Spinner> allspin = new ArrayList<Spinner>(); Spinner spin = new Spinner(getParent()); allspin.add(spin); spin.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONT

我通过解析XML文件在应用程序中动态添加微调器

我已经使用了下面的代码

List<Spinner> allspin = new ArrayList<Spinner>();
Spinner spin = new Spinner(getParent());
allspin.add(spin);
spin.setLayoutParams(new LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getParent(),
        android.R.layout.simple_spinner_item, selectval);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
List allspin=new ArrayList();
微调器旋转=新微调器(getParent());
allspin.add(spin);
spin.setLayoutParams(新的LayoutParams(
LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
ArrayAdapter=新的ArrayAdapter(getParent(),
android.R.layout.simple\u微调器\u项目,选择val);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
spin.setAdapter(适配器);

微调器显示正确,但我不知道如何检索选定微调器的值。如果有一个微调器我可以重设,但有多个微调器我该怎么办?

如果需要多个微调器(我不确定我是否理解您的用例),那么在创建每个微调器时,还需要创建适当的侦听器。您不必自己检索微调器的值;应该在侦听器中处理这些选择事件。也许如果你解释一下你想做的更好一点,这会更容易帮助你……

你可以动态设置微调器的id

为此,您可以使用

spin.setId(i); //if you use i of for loop for creating multipal spin at a tym or you can use a global variable i,incremented by one each time you create a spinner
此外,还可以使用这些ID从特定微调器获取值

例如:

for(int i=1;i<4;i++)
{
    Spinner spin=new Spinner(getApplicationCotext());
    spin.setId(i);
    ...
    //other code
    ...
    mLayout.add(spin);//add this spinner to your layout(mLayout is object of your layout in xml)
}

for(int i=1;i可以从arraylist中获取微调器的引用,如下所示:

Spinner spn = allspin.get(index);
之后,您只需调用以下命令即可获取所选项目:

spn.getSelectedItemPosition();
spn.getSelectedItemPosition();