¿Obtener el texto seleccionado de los elementos giratorios?

¿Cómo obtener el texto del elemento seleccionado?

Tengo que conseguir el texto en el artículo seleccionado en mi hilandero cuando hago clic en el botón de la reserva. Necesito el texto no el índice.

Spinner spinner = (Spinner)findViewById(R.id.spinner); String text = spinner.getSelectedItem().toString(); 
 TextView textView = (TextView)mySpinner.getSelectedView(); String result = textView.getText().toString(); 

Tienes que usar el índice y el adaptador para encontrar el texto que tienes

Vea este ejemplo de Spinner

 public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(parent.getContext()), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); } public void onNothingSelected(AdapterView parent) { // Do nothing. } } 

utilizar esta

 import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.Toast; public class dynamic_spinner_main extends Activity { private Spinner m_myDynamicSpinner; private EditText m_addItemText; private ArrayAdapter<CharSequence> m_adapterForSpinner; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_spinner); /////////////////////////////////////////////////////////////// //grab our UI elements so we can manipulate them (in the case of the Spinner) // or add listeners to them (in the case of the buttons) m_myDynamicSpinner = (Spinner)findViewById(R.id.dynamicSpinner); m_addItemText = (EditText)findViewById(R.id.newSpinnerItemText); Button addButton = (Button)findViewById(R.id.AddBtn); Button clearButton = (Button)findViewById(R.id.ClearBtn); //////////////////////////////////////////////////////////////// //create an arrayAdapter an assign it to the spinner m_adapterForSpinner = new ArrayAdapter(this, android.R.layout.simple_spinner_item); m_adapterForSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); m_myDynamicSpinner.setAdapter(m_adapterForSpinner); m_adapterForSpinner.add("gr"); m_myDynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { // your code here Intent mIntent=new Intent(dynamic_spinner_main.this,sampleLocalization.class); mIntent.putExtra("lang", m_myDynamicSpinner.getItemIdAtPosition(position)); System.out.println("Spinner value...."+m_myDynamicSpinner.getSelectedItem().toString()); startActivity(mIntent); } @Override public void onNothingSelected(AdapterView<?> parentView) { // your code here } }); //////////////////////////////////////////////////////////////// //add listener for addButton addButton.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { addNewSpinnerItem(); } }); //////////////////////////////////////////////////////////////// //add listener for addButton clearButton.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { clearSpinnerItems(); } }); } private void addNewSpinnerItem() { CharSequence textHolder = "" + m_addItemText.getText(); m_adapterForSpinner.add(textHolder); } private void clearSpinnerItems() { m_adapterForSpinner.clear(); m_adapterForSpinner.add("dummy item"); } } 

Main_spinner.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <EditText android:layout_height="wrap_content" android:layout_margin="4px" android:id="@+id/newSpinnerItemText" android:layout_width="fill_parent"></EditText> <Button android:layout_height="wrap_content" android:id="@+id/AddBtn" android:layout_margin="4px" android:layout_width="fill_parent" android:text="Add To Spinner"></Button> <Button android:layout_height="wrap_content" android:id="@+id/ClearBtn" android:layout_margin="4px" android:layout_width="fill_parent" android:text="Clear Spinner Items"></Button> <Spinner android:layout_height="wrap_content" android:id="@+id/dynamicSpinner" android:layout_margin="4px" android:layout_width="fill_parent"></Spinner> </LinearLayout> 

Spinner le devuelve el valor entero para la matriz. Debe recuperar el valor de cadena basado en el índice.

 Spinner MySpinner = (Spinner)findViewById(R.id.spinner); Integer indexValue = MySpinner.getSelectedItemPosition(); 
 TextView textView = (TextView) spinActSubTask.getSelectedView().findViewById(R.id.tvProduct); String subItem = textView.getText().toString(); 
 spinner_button.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?>arg0, View view, int arg2, long arg3) { String selected_val=spinner_button.getSelectedItem().toString(); Toast.makeText(getApplicationContext(), selected_val , Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } 

Versión de una línea:

 String text = ((Spinner)findViewById(R.id.spinner)).getSelectedItem().toString(); 

Para los hiladores basados ​​en un CursorAdapter:

  • Obtener el ID del elemento seleccionado: spinner.getSelectedItemId()
  • Busque el nombre del elemento de su base de datos, por ejemplo:

     public String getCountryName(int pId){ Cursor cur = mDb.query(TABLE, new String[]{COL_NAME}, COL_ID+"=?", new String[]{pId+""}, null, null, null); String ret = null; if(cur.moveToFirst()){ ret = cur.getString(0); } cur.close(); return ret; } 

Para aquellos que tienen HashMap basado spinner:

 ((HashMap)((Spinner)findViewById(R.id.YourSpinnerId)).getSelectedItem()).values().toArray()[0].toString(); 

Si está en un Fragmento, un Adaptador o una Clase distinta de las actividades principales, use esto:

 ((HashMap)((Spinner)YourInflatedLayoutOrView.findViewById(R.id.YourSpinnerId)).getSelectedItem()).values().toArray()[0].toString(); 

Es sólo por guía; Debe encontrar el ID de su vista antes de hacer clic en el método.

 Spinner spinner = (Spinner) findViewById(R.id.yourspinnerid); String text = spinner.getSelectedItem().toString(); 
  • ¿Cómo puede comprobar el estado de los dos spinner?
  • Implementar múltiples oyentes de eventos en el mismo fragmento - Android
  • ¿Cómo puedo cambiar el tamaño o el color de mi casilla de verificación de spinner?
  • Spinner con elementos de varias líneas superpone la visualización de elementos seleccionados en Froyo
  • Spinner: obtener estado o recibir notificación cuando se abre
  • Error en Spinner en una ventana emergente, se bloquea cuando se hace clic
  • ¿Cómo establecer el valor por defecto de Spinner como nulo?
  • Android Appcompat v21 - utilizar el estilo antiguo del hilandero
  • Problema de estilo al superponer getDropDownView en ArrayAdapter
  • AppCompatSpinner vs android.widget.Spinner para la aplicación con min SDK versión 14
  • Cambiar el color del pequeño triángulo en spinner en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.