Obtenir le texte des éléments sélectionnés spinner?

Comment obtenir le texte de l’élément sélectionné spinner?

Je dois obtenir le texte sur l’élément sélectionné dans mon spinner lorsque je clique sur le bouton Enregistrer. J’ai besoin du texte et non de l’index.

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

Vous devez utiliser l’index et l’adaptateur pour trouver le texte que vous avez

Voir cet exemple 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).toSsortingng(), Toast.LENGTH_LONG).show(); } public void onNothingSelected(AdapterView parent) { // Do nothing. } } 

utilisez ceci

 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 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().toSsortingng()); 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

        

Spinner vous renvoie la valeur entière pour le tableau. Vous devez récupérer la valeur de chaîne basée sur l’index.

 Spinner MySpinner = (Spinner)findViewById(R.id.spinner); Integer indexValue = MySpinner.getSelectedItemPosition(); 

Version en une ligne:

 Ssortingng text = ((Spinner)findViewById(R.id.spinner)).getSelectedItem().toSsortingng(); 

UPDATE: Vous pouvez supprimer le casting si vous utilisez le SDK 26 (ou plus récent) pour comstackr votre projet.

 Ssortingng text = findViewById(R.id.spinner).getSelectedItem().toSsortingng(); 
 spinner_button.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterViewarg0, View view, int arg2, long arg3) { Ssortingng selected_val=spinner_button.getSelectedItem().toSsortingng(); Toast.makeText(getApplicationContext(), selected_val , Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView arg0) { // TODO Auto-generated method stub } }); } 
 TextView textView = (TextView) spinActSubTask.getSelectedView().findViewById(R.id.tvProduct); Ssortingng subItem = textView.getText().toSsortingng(); 

Pour les spinners basés sur un CursorAdapter:

  • obtenir l’identifiant de l’élément sélectionné: spinner.getSelectedItemId()
  • récupère le nom de l’élément depuis votre firebase database, par exemple:

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

Pour ceux qui ont HinnerMap basé spinner:

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

Si vous êtes dans un fragment, un adaptateur ou une classe autre que les activités principales, utilisez ceci:

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

C’est juste pour des conseils; Vous devriez trouver l’identifiant de votre vue avant la méthode onClick.

Après avoir défini l’adaptateur spinner, ce code vous aidera

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int i, long l) { Toast.makeText(getApplicationContext(), "This is " + adapterView.getItemAtPosition(i).toSsortingng(), Toast.LENGTH_LONG).show(); try { //Your task here }catch (Exception e) { e.printStackTrace(); } } @Override public void onNothingSelected(AdapterView adapterView) { } }); 
 Spinner spinner = (Spinner) findViewById(R.id.yourspinnerid); Ssortingng text = spinner.getSelectedItem().toSsortingng();