2012-11-09 4 views
1

Je suis en train de développer une application où je dois définir dynamiquement les valeurs de spinner en fonction des valeurs d'écran précédentes. Mon code ...Réglage dynamique de la position du spinner dans Android?

Main.java.

String[] values = {"All","Only Walk-in","Only Phone","Only Web","Walkin-phone","Walkin-web","phone-web"}; 

/*ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,apttypes); 
    spinner.setAdapter(adapter);*/ 

Mais voici ce que je veux est de l'écran précédent je reçois une certaine valeur (comme spinner postion). sur la base que je dois mettre en valeur spinner pour afficher ...

moyens de l'écran précédent si je suis arrivé valeurs = 0 signifie,

i besoin de mettre en valeur spinner pour afficher « Tous » de tableau des valeurs en haut .

Si je suis arrivé valeur = 5 signifie,

Je veux mettre la valeur spinner à afficher comme "Walkin-web"

Comment puis-je faire cela. quelqu'un peut-il me aider ...

+0

Avez-vous obtenu la solution? – Arivazhagan

+3

Avez-vous essayé d'autres méthodes? Partager votre code source .. – gowri

Répondre

8

passer la valeur dans des Activity précédentes en utilisant des figurants dans le vous utilisez Intent pour le lancer. Ensuite, lorsque vous avez lu l'appel de valeur

int position = getIntent().getIntExtra("name", defaultValue); 
spinner.setSelection(position); 

Qui va déplacer le spinner à l'index que vous avez sélectionné.

+0

puis-je définir la valeur de spinner par sa valeur non en définissant la position ?? –

+0

Pas directement, mais vous pouvez toujours lire vos valeurs pour trouver l'index de celui que vous voulez et définir cela. – ScouseChris

1
you can implement onItemClick event on Spinner like this and setSelection(position) 

     //Spinner OnItemClick Event here 
     payfeeTabStudentNameSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, 
        int position, long id) { 
       payfeeTabStudentNameSpinner.setSelection(position); 
       spinnerSelectedValue = parent.getItemAtPosition(position).toString(); 
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 
      } 
     }); 
0

l'intérieur de votre première activité A.java

public static String Position = YOUR_SPINNER1.getSelectedItem().toString(); 

l'intérieur de votre deuxième activité B.java

if(A.Position.equals("0")){ 
//Set your adapter accordingly 
}else if(A.Position.equals("1")){ 
//Set your adapter accordingly 
} 
3

Utilisez le code suivant tableau et de créer un nouvel adaptateur réseau chaque fois

String[] str=new String[maxsize-4]; 
0

Vous pouvez affecter Position de e Spinner en utilisant le code suivant ..

Spinner s1; 
----------- 
----------- 
int position=valueFromPrevious; 
s1.setSelection(position); 
----------- 
----------- 
+2

Vous pouvez assigner la valeur du fileur de la classe précédente par la déclaration d'assignation ci-dessus .. – gowri

+1

Oui, cela fonctionnera Bon ... – Arivazhagan

+2

final Chaîne valueFromPrevious = getIntent(). GetExtras(). GetString ("SpinnerPosition"); Vous pouvez l'utiliser pour la valeur get from Previous .. – gowri

0

transmettre les valeurs de l'activité précédente en utilisant Extras et puis quand tu veux l'utiliser dans votre activité actuelle suivez ceci:

Si u obtenir la valeur chaîne Typecast puis en interger par la méthode parseInt ...

String strtext4 = getIntent().getStringExtra("qualification"); 

puis

int position = Integer.parseInt(strtext4); 

après cela il suffit de le mettre à votre spinner

qualificationspinner.setSelection(position); 
Questions connexes