How to get Spinner selected item value to string?

AndroidAndroid Spinner

Android Problem Overview


I have 5 Spinners. In order to make it summary to this.

This is Spinner in xml

<Spinner
            android:id="@+id/text_interested"
            android:layout_span="2"
            android:layout_width="wrap_content"
            android:layout_height="60px"
            android:entries="@array/interestedarrays"
            android:prompt="@string/interestedprompt" />

This is Spinner in Java

submitbtn.setOnClickListener(new OnClickListener() {
		public void onClick(View v) {
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
						public void onItemSelected(
								AdapterView<?> adapterView, View view,
								int i, long l) {
							interesting = interested.getItemAtPosition(i).toString();
						}

						public void onNothingSelected(
								AdapterView<?> adapterView) {

						}
					});
    }
});

Explanation here:

The page got a button. This button will read the data from spinner when pressed. I checked the output with this

System.out.println(interested.getItemAtPosition(i).toString());

It gave me nothing not even null.

How to retrieve the value and to string it?

Android Solutions


Solution 1 - Android

Try this:

String text = mySpinner.getSelectedItem().toString();

Like this you can get value for different Spinners.

Solution 2 - Android

String Text = mySpinner.getSelectedItem().toString();

OR

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Object item = parent.getItemAtPosition(position);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

Solution 3 - Android

You can get the selected item from Spinner by using,

interested.getSelectedItem().toString();

Solution 4 - Android

try this

 final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested);
	String cardStatusString;
	cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

		@Override
		public void onItemSelected(AdapterView<?> parent,
				View view, int pos, long id) {
			cardStatusString = parent.getItemAtPosition(pos).toString();
		}

		@Override
		public void onNothingSelected(AdapterView<?> arg0) {
			// TODO Auto-generated method stub

		}
	});

 final Button saveBtn = (Button) findViewById(R.id.save_button);
 	saveBtn .setOnClickListener(new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			
			System.out.println("Selected cardStatusString : " + cardStatusString ); //this will print the result
		}
	});
 

Solution 5 - Android

If your Spinner was populated by SQLite cursor, then the solution is:

Spinner mySpin = (Spinner) findViewById(R.id.myspin);
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position);
           String value = String.valueOf(item.getString(0));
           Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
 }

PS: In item.getString(0) -> 0 is the index of column on cursor that you want to get.

Solution 6 - Android

Get the selected item with Kotlin:

spinner.selectedItem.toString()

Solution 7 - Android

In addition to the suggested,

String Text = mySpinner.getSelectedItem().toString();

You can do,

String Text = String.valueOf(mySpinner.getSelectedItem());

Solution 8 - Android

I think you want the selected item of the spinner when button is clicked..

Try getSelectedItem():

spinner.getSelectedItem()

Solution 9 - Android

Since the latest language for Android Development is Kotlin. Here is, how we do it in Kotlin using Anonymous object.

spinnerName?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {
       println("Nothing Selected")
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
       val selectedString = yourList[position]
    }

}

Solution 10 - Android

When you choose any value from spinner, then you get selected value,

interested.getSelectedItem().toString();

Solution 11 - Android

The best way to do this is :-

String selectedItem = spinner.getSelectedItem().toString();

you can refer the docs here : Spinners

Solution 12 - Android

try this

sp1 = String.valueOf(spinner.getSelectedItem());

Solution 13 - Android

By implementing the SpinnerAdapter for your adapter object i use interested.getItem(i).toString()

Solution 14 - Android

    spinnerType = (AppCompatSpinner) findViewById(R.id.account_type);
    spinnerType.setPrompt("Select Type");

    spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TypeItem clickedItem = (TypeItem) parent.getItemAtPosition(position);
            String TypeName = clickedItem.getTypeName();
            Toast.makeText(AddAccount.this, TypeName + " selected", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlan LaiView Question on Stackoverflow
Solution 1 - AndroidBhavinView Answer on Stackoverflow
Solution 2 - AndroidsantoshpatmcaView Answer on Stackoverflow
Solution 3 - AndroidLalit PoptaniView Answer on Stackoverflow
Solution 4 - AndroidsushView Answer on Stackoverflow
Solution 5 - AndroidMduarthView Answer on Stackoverflow
Solution 6 - AndroidWesty92View Answer on Stackoverflow
Solution 7 - AndroidMaxView Answer on Stackoverflow
Solution 8 - AndroidngeshView Answer on Stackoverflow
Solution 9 - AndroidHannyView Answer on Stackoverflow
Solution 10 - AndroidAndyView Answer on Stackoverflow
Solution 11 - AndroidDeepak VardhanView Answer on Stackoverflow
Solution 12 - AndroidThasreef MogralView Answer on Stackoverflow
Solution 13 - AndroidGedankenNebelView Answer on Stackoverflow
Solution 14 - AndroidMalith IleperumaView Answer on Stackoverflow