51 votes

Comment obtenez-vous la valeur sélectionnée d'un Spinner?

J'essaie d'obtenir la chaîne d'éléments sélectionnés à partir de Spinner . Jusqu'ici j'ai eu ceci:

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

Cela ne fonctionne pas et donne une exception de casting de classe (je pensais pouvoir lancer un View sur un widget qui en hérite. Évidemment pas!) Alors, comment obtenez-vous la valeur sélectionnée d'un Spinner ?

73voto

jalopaba Points 2618

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

Créer une classe imbriquée qui implémente AdapterView.OnItemSelectedListener. Cela permettra de fournir une méthode de rappel qui informera votre application lorsqu'un élément a été sélectionné à partir de la Toupie.

Dans "onItemSelected" méthode de cette classe, vous pouvez obtenir de 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.
    }
}

Enfin, votre ItemSelectedListener doit être enregistré dans le compteur:

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

53voto

Rich Points 16818

Vous avez getSelectedXXX méthodes de l'AdapterView classe à partir de laquelle le Spinner dérive:

getSelectedItem()

getSelectedItemPosition()

getSelectedItemId()

44voto

tdevinda Points 204

Field est le spinner.

 fields.getItemAtPosition(fields.getSelectedItemPosition()).toString());
 

cela vous donnera la chaîne de la sélection

16voto

Chrispix Points 4867

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition()) fonctionne selon la description de Rich.

5voto

Tivie Points 4581

Tout dépend du point sur lequel vous souhaitez "attraper" la valeur.

Par exemple, si vous souhaitez intercepter la valeur dès que l'utilisateur modifie l'élément sélectionné en rotation, utilisez l'approche d'écoute (fournie par jalopaba).

Si vous attrapez plutôt la valeur lorsqu'un utilisateur effectue la dernière tâche, par exemple en cliquant sur un bouton Soumettre ou quelque chose du genre, la réponse fournie par Rich est meilleure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X