443 votes

Définir l’élément sélectionné de spinner par programme

Je suis en train de travailler sur un projet android et je suis en utilisant un compteur qui utilise un tableau de l'adaptateur qui est rempli à partir de la base de données.

Je ne peux pas savoir comment je peux régler l'élément sélectionné par programme à partir de la liste. Par exemple, si, dans la réglette, j'ai les éléments suivants:

  • Catégorie 1
  • Catégorie 2
  • Catégorie 3

Comment pourrais-je le faire par programmation de Catégorie 2 de l'élément sélectionné lorsque l'écran est créé. Je pensais qu'il pourrait être similaire à c# I. E Spinner.SelectedText = "Catégorie 2", mais il ne semble pas être une méthode similaire à ce pour Android.

853voto

Arun George Points 5886

Utilisez la syntaxe suivante : `` .

95voto

Marco HC Points 983

Aucun d'entre ces réponses m’a donné la solution, seulement travaillée avec ceci :

Espérons que cela aidera quelqu'un et d’économiser des heures de sa vie.

A bientôt.

44voto

Yaqub Ahmad Points 10931
<pre><code></code><p>Vous pouvez utiliser le type ci-dessus :</p><pre><code></code></pre><p>&amp; ofcource vous pouvez également sélectionner index directement comme</p><pre><code></code></pre></pre>

34voto

sberezin Points 134

Quelques explications (au moins pour les Fragments - n'a jamais essayé avec de la pure Activité). Espérons que cela aide quelqu'un à comprendre Android mieux.

Les plus populaires réponse par Arun George est correct mais ne fonctionnent pas dans certains cas.
La réponse par Marco HC utilise Exécutable qui est un dernier recours en raison de l'augmentation de charge du PROCESSEUR.

La réponse est que vous devez tout simplement choisir le bon endroit pour appeler à la setSelection(), par exemple, il fonctionne pour moi:

@Override
public void onResume() {
    super.onResume();

    yourSpinner.setSelection(pos);
 }

Mais il ne fonctionnera pas dans onCreateView(). Je soupçonne que c'est la raison de l'intérêt à ce sujet.

Le secret, c'est qu'avec Android, vous ne pouvez pas faire tout ce que vous voulez dans n'importe quelle méthode oops: (composants peuvent tout simplement pas être prêt. Comme un autre exemple, vous ne pouvez pas faire défiler le ScrollView ni dans onCreateView (), ni dans onResume() (voir la réponse ici)

15voto

Pourquoi ne vous utilisez vos valeurs de la DB et les stocker sur un ArrayList et ensuite il suffit d’utiliser :

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