Comment obtenir la valeur sélectionnée d'un Spinner?

j'essaie de sortir la chaîne d'éléments sélectionnée d'un Spinner. Jusqu'à présent j'ai obtenu ceci:

bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());

Cela ne fonctionne pas et donne une classe casting d'exception (je pensais que je pouvais jeter un View à un widget qui l'hérite. Évidemment pas!) Alors comment obtenir la valeur sélectionnée d'un Spinner?

48
demandé sur Matthew Hall 2010-04-16 15:13:32

8 réponses

Pour obtenir la valeur sélectionnée d'un spinner, vous pouvez suivre ce exemple.

Créer une classe imbriquée qui implémente AdapterView.OnItemSelectedListener. Cela fournira une méthode de rappel qui avertira votre application quand un élément a été sélectionné à partir du Spinner.

dans la méthode "onItemSelected" de cette classe, vous pouvez obtenir l'élément sélectionné:

public class YourItemSelectedListener implements OnItemSelectedListener {

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

    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
71
répondu jalopaba 2013-02-01 05:56:47

vous avez les méthodes getSelectedXXX de la classe AdapterView dont le Spinner dérive:

getSelectedItem ()

getSelectedItemPosition ()

getSelectedItemId ()

52
répondu Rich 2010-04-16 11:52:53

utilisez simplement ceci:

spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

Cela vous donnera l' String de l'élément sélectionné dans le Spinner.

43
répondu Tharaka Devinda 2015-12-22 16:38:27

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition()) travaux basés sur la description de Rich.

16
répondu Chrispix 2012-09-03 11:30:50

dépend de quel point vous souhaitez "attraper" la valeur.

Par exemple, si vous voulez prendre de la valeur dès que l'utilisateur change le spinner élément sélectionné, utilisez l'approche de l'auditeur (fourni par jalopaba)

si vous attrapez plutôt la valeur quand un utilisateur exécute la tâche finale comme un clic sur un bouton Soumettre, ou quelque chose, alors la réponse fournie par Rich est meilleure.

5
répondu Tivie 2011-11-09 18:52:43

C'est une autre façon:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int pos, long arg3) {
            // TODO Auto-generated method stub

        }

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

        }
    });
1
répondu Sasa 2015-08-19 07:03:54

pour obtenir juste la valeur de la chaîne dans le spinner utilisez ce qui suit:

spinner.getSelectedItem().toString();
1
répondu dandev91 2018-01-17 05:37:54
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();

dans le cas où les valeurs de Spinner sont int le transtypage int

int valueinInt=(int)(spinner.getSelectedItem());
0
répondu Adnan Ali 2017-06-19 17:04:59