Skip to content Skip to sidebar Skip to footer

Android How To Retrieve Value Of Dynamically Added Spinner

I am dynamically adding the Spinners in my application by parsing the XML file. I have done using the below code List allspin = new ArrayList(); Spinn

Solution 1:

You can get the reference of the spinner from your arraylist like this :

Spinner spn = allspin.get(index);

After that you can get the selected item by simply calling:

spn.getSelectedItemPosition();

Solution 2:

You can set id of spinner dynamically.

For that,you can use

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

and further,you can use those ids to get values from particular spinner.

Example:

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

Now,

for(int i=1;i<4;i++)
{
    Spinner sp=(Spinner)findViewById(i);
    sp.setOnItemSelectedListener(newOnItemSelectedListener() {

        @OverridepublicvoidonItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {

            System.out.println(sp.getText().toString());//prints values of a pinner when it is changed/selected 
        }

        @OverridepublicvoidonNothingSelected(AdapterView<?> arg0) {

        }
    });
}

Solution 3:

If you need multiple spinners (I'm not sure I understand your use case), then, as you're creating each of them, you need to also create the appropriate listeners. You shouldn't have to retrieve values of spinners yourself; handling these selection events should be done in your listeners. Perhaps if you explained what you're attempting to do a bit better it would be easier to help...

Post a Comment for "Android How To Retrieve Value Of Dynamically Added Spinner"