Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use onItemSelected in Android?

package org.example.mbtiapplication;  import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner;  public class MBTITest extends Activity implements OnItemSelectedListener  {      private Spinner firstSpinner;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_mbtitest);          Spinner firstSpinner = (Spinner) findViewById(R.id.spinner1);         // Create an ArrayAdapter using the string array and a default spinner layout         ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,                 R.array.spinnerarraybool, android.R.layout.simple_spinner_item);         // Specify the layout to use when the list of choices appears         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);         // Apply the adapter to the spinner         firstSpinner.setAdapter(adapter);     }      @Override     public void onItemSelected(AdapterView<?> parent, View v, int position,             long id) {         // TODO Auto-generated method stub      }      @Override     public void onNothingSelected(AdapterView<?> arg0) {         // TODO Auto-generated method stub           }  } 

XML Layout:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="fill_parent" >      <TableRow         android:layout_width="match_parent"         android:layout_height="wrap_content" >          <TextView             android:layout_width="120dp"             android:layout_height="match_parent"             android:layout_marginLeft="5dp"             android:gravity="center_vertical"             android:text="I like to go out more than staying home." />          <Spinner             android:id="@+id/spinner1"             android:layout_width="wrap_content"             android:layout_height="wrap_content" />     </TableRow>      <TableRow         android:layout_width="match_parent"         android:layout_height="wrap_content" >          <TextView             android:layout_width="120dp"             android:layout_height="match_parent"             android:layout_marginLeft="5dp"             android:gravity="center_vertical"             android:textSize="10.5dp"             android:text="Sensing v Intuition" />          <Spinner             android:id="@+id/spinner2"             android:layout_width="match_parent"             android:layout_height="wrap_content" />     </TableRow> </TableLayout> 

I'm a new Android programmer and having trouble with using Spinner, i've tried multiple tutorials and still am confused. I'd like to know what my next step is here, as far as I know I have set up my spinner in XML, in Java I have identified that spinner, created an ArrayAdapter for said spinner, and specified some options. I'm not to sure if I have populated the spinner yet or how to manuever with the spinner object. I'd like to be able to use the spinner object to select one of three options and then keep that value inside of the textview inside of the spinner.

like image 515
Joseph Little-Indelible Avatar asked Nov 22 '13 17:11

Joseph Little-Indelible


People also ask

What is AdapterView Onitemselectedlistener?

public abstract void onItemSelected (AdapterView<?> parent, View view, int position, long id) Callback method to be invoked when an item in this view has been selected. This callback is invoked only when the newly selected position is different from the previously selected position or if there was no selected item.

What is spinner in Android with example?

Android Spinner is a view similar to the dropdown list which is used to select one option from the list of options. It provides an easy way to select one item from the list of items and it shows a dropdown list of all values when we click on it.


1 Answers

You're almost there. As you can see, the onItemSelected will give you a position parameter, you can use this to retrieve the object from your adapter, as in getItemAtPosition(position).

Example:

spinner.setOnItemSelectedListener(this);  ...  public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {     Toast.makeText(parent.getContext(),          "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),         Toast.LENGTH_SHORT).show(); } 

This will put a message on screen, with the selected item printed by its toString() method.

like image 80
bgse Avatar answered Sep 21 '22 07:09

bgse