Gabin Posté(e) 26 janvier 2011 Share Posté(e) 26 janvier 2011 (modifié) Bonjour, Alors je vais vous expliquer mon problème, mais avant un peu de code. (Je commence dans la programmation Java/Android donc soyez indulgent ;) ) Compris dans Main.xml Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); Spinner sp_composante_.... ArrayAdapter spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); Je souhaiterais en fait pouvoir afficher une Spinner secondaire en fonction du choix de la Spinner principale. Je m'explique, l'utilisateur choisira par exemple la composante Iut Orléans dans la Spinner principale (sp_composante) ce qui affichera la Spinner secondaire (sp_composante_iutOrleans). J'arrive pas à trouver comment récupérer le clic. Je pense faire après un Switch afin d'afficher la Spinner secondaire correspondante à l'id de l'item choisit dans sp_composante. J'ai trouvé des bouts de code qui je pense devraient pouvoir m'aider mais j'arrive pas à trouver la démarche... Voici des fonctions qui vous donneront peut être des idées (celles que j'ai essayé de mettre en place): sp_composante.setOnItemSelectedListener(new ItemSelectedSpinner()); sp_composante.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); Bon je continue de potasser le bouquin Android 2 (développement d'applications professionnelles)... Merci pour votre aide ! Gabin Modifié 4 mars 2011 par G&Dev Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 27 janvier 2011 Auteur Share Posté(e) 27 janvier 2011 (modifié) Up ! Personne pour m'aider ? :mad: Modifié 27 janvier 2011 par G&Dev Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Naskel Posté(e) 27 janvier 2011 Share Posté(e) 27 janvier 2011 (modifié) Bonjour Sur la doc officielle setOnItemClickListener(AdapterView.OnItemClickListener l) A spinner does not support item click events. Donc ca c'est sur c'est pas ca. En recherchant un peu j'ai trouvé ca : Spinner spinner = (Spinner) findViewById(R.id.Spinner01); /* * Create a backing mLocalAdapter for the Spinner from a list of the * planets. The list is defined by XML in the strings.xml file. */ this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, android.R.layout.simple_spinner_dropdown_item); /* * Attach the mLocalAdapter to the spinner. */ spinner.setAdapter(this.mAdapter); /* * Create a listener that is triggered when Android detects the * user has selected an item in the Spinner. */ OnItemSelectedListener spinnerListener = new myOnItemSelectedListener(this,this.mAdapter); /* * Attach the listener to the Spinner. */ spinner.setOnItemSelectedListener(spinnerListener); /* * To demonstrate a failure in the preConditions test, * uncomment the following line. * The test will fail because the selection listener for the * Spinner is not set. */ // spinner.setOnItemSelectedListener(null); } /** * A callback listener that implements the * {@link android.widget.AdapterView.OnItemSelectedListener} interface * For views based on adapters, this interface defines the methods available * when the user selects an item from the View. * */ public class myOnItemSelectedListener implements OnItemSelectedListener { /* * provide local instances of the mLocalAdapter and the mLocalContext */ ArrayAdapter<CharSequence> mLocalAdapter; Activity mLocalContext; /** * Constructor * @param c - The activity that displays the Spinner. * @param ad - The Adapter view that * controls the Spinner. * Instantiate a new listener object. */ public myOnItemSelectedListener(Activity c, ArrayAdapter<CharSequence> ad) { this.mLocalContext = c; this.mLocalAdapter = ad; } /** * When the user selects an item in the spinner, this method is invoked by the callback * chain. Android calls the item selected listener for the spinner, which invokes the * onItemSelected method. * * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected( * android.widget.AdapterView, android.view.View, int, long) * @param parent - the AdapterView for this listener * @param v - the View for this listener * @param pos - the 0-based position of the selection in the mLocalAdapter * @param row - the 0-based row number of the selection in the View */ public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) { SpinnerActivity.this.mPos = pos; SpinnerActivity.this.mSelection = parent.getItemAtPosition(pos).toString(); /* * Set the value of the text field in the UI */ TextView resultText = (TextView)findViewById(R.id.SpinnerResult); resultText.setText(SpinnerActivity.this.mSelection); } /** * The definition of OnItemSelectedListener requires an override * of onNothingSelected(), even though this implementation does not use it. * @param parent - The View for this Listener */ public void onNothingSelected(AdapterView<?> parent) { // do nothing } } J'espère que ca t'aideras. Cordialement, Modifié 27 janvier 2011 par Naskel Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 28 janvier 2011 Auteur Share Posté(e) 28 janvier 2011 Super Naskel ! J'avais trouvé un bout de code qui ressemblait à ça mais sans explications :/ Je vais regarder ça dès demain, lorsque j'aurais un peu de temps ! Bonne journée à toi =) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 1 février 2011 Auteur Share Posté(e) 1 février 2011 Alors j'ai intégré le code que tu m'as donné mais je n'arrive pas à passer la variable mPos d'une activity à l'autre. Voici mon Main.java : import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class Main extends Activity { public static int mPos; public static String mSelection; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("Alerte", "Debut"); Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); Spinner sp_composante_cesDroit = (Spinner)findViewById(R.id.sp_composante_cesDroit); Spinner sp_composante_cesLettres = (Spinner)findViewById(R.id.sp_composante_cesLettres); Spinner sp_composante_droitEco = (Spinner)findViewById(R.id.sp_composante_droitEco); Spinner sp_composante_iutBourges = (Spinner)findViewById(R.id.sp_composante_iutBourges); Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); Spinner sp_composante_lettresLangues = (Spinner)findViewById(R.id.sp_composante_lettresLangues); Spinner sp_composante_OSUC = (Spinner)findViewById(R.id.sp_composante_OSUC); Spinner sp_composante_polytechOrleans = (Spinner)findViewById(R.id.sp_composante_polytechOrleans); Spinner sp_composante_sciences = (Spinner)findViewById(R.id.sp_composante_sciences); Spinner sp_composante_staps = (Spinner)findViewById(R.id.sp_composante_staps); Spinner sp_composante_ufrDeg = (Spinner)findViewById(R.id.sp_composante_ufrDeg); TextView composanteTitre = (TextView)findViewById(R.id.sp_composanteTitre); ArrayAdapter<CharSequence> spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter<CharSequence> spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter<CharSequence> spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter<CharSequence> spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); OnItemSelectedListener sp_composanteListener = new ItemSelectedSpinner(this,spComposanteAdapter); sp_composante.setOnItemSelectedListener(sp_composanteListener); /* C'est un peu le bazar par là, je ne m'y retrouve plus... Bundle posBundle = this.getIntent().getExtras(); String mPosSt = posBundle.getString("posItemBundle"); //Bundle b = getIntent().getExtras(); //smPos = b.getInt("posItemExt"); Integer mPos = Integer.parseInt(mPosSt); */ Log.i("Alerte", "Avant le switch"); switch (mPos) { case 1: composanteTitre.setText("Filière "+"CES Droit Châteauroux"); sp_composante_cesDroit.setVisibility(View.VISIBLE); break; case 2: composanteTitre.setText("Filière "+"CES Lettres Châteauroux"); sp_composante_cesLettres.setVisibility(View.VISIBLE); break; case 3: composanteTitre.setText("Filière "+"Droit, Economie, Gestion"); sp_composante_droitEco.setVisibility(View.VISIBLE); break; case 4: composanteTitre.setText("Filière "+"Iut Bourges"); sp_composante_iutBourges.setVisibility(View.VISIBLE); break; case 5: composanteTitre.setText("Filière "+"Iut Orléans"); sp_composante_iutOrleans.setVisibility(View.VISIBLE); break; case 6: composanteTitre.setText("Filière "+"Lettres, Langues, Sciences Humaines"); sp_composante_lettresLangues.setVisibility(View.VISIBLE); break; case 7: composanteTitre.setText("Filière "+"OSUC"); sp_composante_OSUC.setVisibility(View.VISIBLE); break; case 8: composanteTitre.setText("Filière "+"Polytech\'Orléans"); sp_composante_polytechOrleans.setVisibility(View.VISIBLE); break; case 9: composanteTitre.setText("Filière "+"Sciences"); sp_composante_sciences.setVisibility(View.VISIBLE); break; case 10: composanteTitre.setText("Filière "+"Staps"); sp_composante_staps.setVisibility(View.VISIBLE); break; case 11: composanteTitre.setText("Filière "+"UFR DEG Bourges"); sp_composante_ufrDeg.setVisibility(View.VISIBLE); break; default: break; } } } et mon ItemSelectedSpinner.java : import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; public class ItemSelectedSpinner implements OnItemSelectedListener { ArrayAdapter<CharSequence> mLocalAdapter; Activity mLocalContext; public ItemSelectedSpinner(Activity act, ArrayAdapter<CharSequence> ad) { this.mLocalContext = act; this.mLocalAdapter = ad; } /** * @param args */ /*public static void main(String[] args) { // }*/ public static int posItem; public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) { posItem = pos; /* J'ai essayé plusieurs solutions ici mais sans grande réussite */ } @Override public void onNothingSelected(AdapterView<?> arg0) { /* rien */ } } J'espère que vous pourrez encore m'aider =) Je vous remercie, Gabin Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 2 février 2011 Auteur Share Posté(e) 2 février 2011 Up ! Toujours pas d'idée ? P.S: Bon allez pause conférence google =) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 3 février 2011 Share Posté(e) 3 février 2011 (modifié) Il faut prendre le problème dans l'autre sens. C'est dans la méthode onItemSelected de ton listener que tu dois faire le switch, pas dans le onCreate Pour ce faire, 2 solutions: - tu passes en paramètres du constructeur du listener tous les éléments dont il peut avoir besoin (référence sur les spinner) - ou tu déclares ta classe ItemSelectedSpinner en inner classe de ton Activity, de façon à ce qu'elle puisse avoir une visibilité sur les attributs/variables de celle-ci. Ce qui donne (sous réserve de fautes de frappe) Solution 1 Main.java import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("Alerte", "Debut"); Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); Spinner sp_composante_cesDroit = (Spinner)findViewById(R.id.sp_composante_cesDroit); Spinner sp_composante_cesLettres = (Spinner)findViewById(R.id.sp_composante_cesLettres); Spinner sp_composante_droitEco = (Spinner)findViewById(R.id.sp_composante_droitEco); Spinner sp_composante_iutBourges = (Spinner)findViewById(R.id.sp_composante_iutBourges); Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); Spinner sp_composante_lettresLangues = (Spinner)findViewById(R.id.sp_composante_lettresLangues); Spinner sp_composante_OSUC = (Spinner)findViewById(R.id.sp_composante_OSUC); Spinner sp_composante_polytechOrleans = (Spinner)findViewById(R.id.sp_composante_polytechOrleans); Spinner sp_composante_sciences = (Spinner)findViewById(R.id.sp_composante_sciences); Spinner sp_composante_staps = (Spinner)findViewById(R.id.sp_composante_staps); Spinner sp_composante_ufrDeg = (Spinner)findViewById(R.id.sp_composante_ufrDeg); TextView composanteTitre = (TextView)findViewById(R.id.sp_composanteTitre); ArrayAdapter<CharSequence> spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter<CharSequence> spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter<CharSequence> spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter<CharSequence> spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); OnItemSelectedListener sp_composanteListener = new ItemSelectedSpinner(composanteTitre, sp_composante_cesDroit, ...); // tous les objets dont tu as besoin dans le listener sp_composante.setOnItemSelectedListener(sp_composanteListener); } } ItemSelectedSpinner.java import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; public class ItemSelectedSpinner implements OnItemSelectedListener { private TextView composanteTitre; private Spinner sp_composante_cesDroit; // déclarer tous les objets dont tu as besoin public ItemSelectedSpinner(TextView pComposanteTitre, Spinner sp_composante_cesDroit, ...) { // tous les éléments dont tu as besoin this.composanteTitre = pComposanteTitre; this.sp_composante_cesDroit = pSp_composante_cesDroit; // ... } public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) { switch (pos) { case 1: composanteTitre.setText("Filière "+"CES Droit Châteauroux"); sp_composante_cesDroit.setVisibility(View.VISIBLE); break; case 2: composanteTitre.setText("Filière "+"CES Lettres Châteauroux"); sp_composante_cesLettres.setVisibility(View.VISIBLE); break; case 3: composanteTitre.setText("Filière "+"Droit, Economie, Gestion"); sp_composante_droitEco.setVisibility(View.VISIBLE); break; case 4: composanteTitre.setText("Filière "+"Iut Bourges"); sp_composante_iutBourges.setVisibility(View.VISIBLE); break; case 5: composanteTitre.setText("Filière "+"Iut Orléans"); sp_composante_iutOrleans.setVisibility(View.VISIBLE); break; case 6: composanteTitre.setText("Filière "+"Lettres, Langues, Sciences Humaines"); sp_composante_lettresLangues.setVisibility(View.VISIBLE); break; case 7: composanteTitre.setText("Filière "+"OSUC"); sp_composante_OSUC.setVisibility(View.VISIBLE); break; case 8: composanteTitre.setText("Filière "+"Polytech\'Orléans"); sp_composante_polytechOrleans.setVisibility(View.VISIBLE); break; case 9: composanteTitre.setText("Filière "+"Sciences"); sp_composante_sciences.setVisibility(View.VISIBLE); break; case 10: composanteTitre.setText("Filière "+"Staps"); sp_composante_staps.setVisibility(View.VISIBLE); break; case 11: composanteTitre.setText("Filière "+"UFR DEG Bourges"); sp_composante_ufrDeg.setVisibility(View.VISIBLE); break; default: break; } } @Override public void onNothingSelected(AdapterView<?> arg0) { /* rien */ } } Solution 2 Un seul fichier Main.java import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("Alerte", "Debut"); // Mettre en final les variables qui seront utilisées dans le listener final Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); final Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); final Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); final Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); final Spinner sp_composante_cesDroit = (Spinner)findViewById(R.id.sp_composante_cesDroit); final Spinner sp_composante_cesLettres = (Spinner)findViewById(R.id.sp_composante_cesLettres); final Spinner sp_composante_droitEco = (Spinner)findViewById(R.id.sp_composante_droitEco); final Spinner sp_composante_iutBourges = (Spinner)findViewById(R.id.sp_composante_iutBourges); final Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); final Spinner sp_composante_lettresLangues = (Spinner)findViewById(R.id.sp_composante_lettresLangues); final Spinner sp_composante_OSUC = (Spinner)findViewById(R.id.sp_composante_OSUC); final Spinner sp_composante_polytechOrleans = (Spinner)findViewById(R.id.sp_composante_polytechOrleans); final Spinner sp_composante_sciences = (Spinner)findViewById(R.id.sp_composante_sciences); final Spinner sp_composante_staps = (Spinner)findViewById(R.id.sp_composante_staps); final Spinner sp_composante_ufrDeg = (Spinner)findViewById(R.id.sp_composante_ufrDeg); final TextView composanteTitre = (TextView)findViewById(R.id.sp_composanteTitre); ArrayAdapter<CharSequence> spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter<CharSequence> spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter<CharSequence> spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter<CharSequence> spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); OnItemSelectedListener sp_composanteListener = new ItemSelectedSpinner(); sp_composante.setOnItemSelectedListener(sp_composanteListener); } public class ItemSelectedSpinner implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View v, int pos, long row) { switch (pos) { case 1: composanteTitre.setText("Filière "+"CES Droit Châteauroux"); sp_composante_cesDroit.setVisibility(View.VISIBLE); break; case 2: composanteTitre.setText("Filière "+"CES Lettres Châteauroux"); sp_composante_cesLettres.setVisibility(View.VISIBLE); break; case 3: composanteTitre.setText("Filière "+"Droit, Economie, Gestion"); sp_composante_droitEco.setVisibility(View.VISIBLE); break; case 4: composanteTitre.setText("Filière "+"Iut Bourges"); sp_composante_iutBourges.setVisibility(View.VISIBLE); break; case 5: composanteTitre.setText("Filière "+"Iut Orléans"); sp_composante_iutOrleans.setVisibility(View.VISIBLE); break; case 6: composanteTitre.setText("Filière "+"Lettres, Langues, Sciences Humaines"); sp_composante_lettresLangues.setVisibility(View.VISIBLE); break; case 7: composanteTitre.setText("Filière "+"OSUC"); sp_composante_OSUC.setVisibility(View.VISIBLE); break; case 8: composanteTitre.setText("Filière "+"Polytech\'Orléans"); sp_composante_polytechOrleans.setVisibility(View.VISIBLE); break; case 9: composanteTitre.setText("Filière "+"Sciences"); sp_composante_sciences.setVisibility(View.VISIBLE); break; case 10: composanteTitre.setText("Filière "+"Staps"); sp_composante_staps.setVisibility(View.VISIBLE); break; case 11: composanteTitre.setText("Filière "+"UFR DEG Bourges"); sp_composante_ufrDeg.setVisibility(View.VISIBLE); break; default: break; } } @Override public void onNothingSelected(AdapterView<?> arg0) { /* rien */ } } } Modifié 3 février 2011 par chpil Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gabin Posté(e) 3 février 2011 Auteur Share Posté(e) 3 février 2011 chpil, je te dis un très grand MERCI :P Je pense enfin avoir compris comment marche le code que je voulais coder ! 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
montassar Posté(e) 10 février 2012 Share Posté(e) 10 février 2012 Super Naskel ! J'avais trouvé un bout de code qui ressemblait à ça mais sans explications :/ Je vais regarder ça dès demain, lorsque j'aurais un peu de temps ! Bonne journée à toi =) Slt,Si vous avez resolu votre probleme est ce que vous pouvez m'aider comment vous avez la resolue avec une explication du code svp Merci d'avance Il faut prendre le problème dans l'autre sens. C'est dans la méthode onItemSelected de ton listener que tu dois faire le switch, pas dans le onCreate Pour ce faire, 2 solutions: - tu passes en paramètres du constructeur du listener tous les éléments dont il peut avoir besoin (référence sur les spinner) - ou tu déclares ta classe ItemSelectedSpinner en inner classe de ton Activity, de façon à ce qu'elle puisse avoir une visibilité sur les attributs/variables de celle-ci. Ce qui donne (sous réserve de fautes de frappe) Solution 1 Main.java import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("Alerte", "Debut"); Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); Spinner sp_composante_cesDroit = (Spinner)findViewById(R.id.sp_composante_cesDroit); Spinner sp_composante_cesLettres = (Spinner)findViewById(R.id.sp_composante_cesLettres); Spinner sp_composante_droitEco = (Spinner)findViewById(R.id.sp_composante_droitEco); Spinner sp_composante_iutBourges = (Spinner)findViewById(R.id.sp_composante_iutBourges); Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); Spinner sp_composante_lettresLangues = (Spinner)findViewById(R.id.sp_composante_lettresLangues); Spinner sp_composante_OSUC = (Spinner)findViewById(R.id.sp_composante_OSUC); Spinner sp_composante_polytechOrleans = (Spinner)findViewById(R.id.sp_composante_polytechOrleans); Spinner sp_composante_sciences = (Spinner)findViewById(R.id.sp_composante_sciences); Spinner sp_composante_staps = (Spinner)findViewById(R.id.sp_composante_staps); Spinner sp_composante_ufrDeg = (Spinner)findViewById(R.id.sp_composante_ufrDeg); TextView composanteTitre = (TextView)findViewById(R.id.sp_composanteTitre); ArrayAdapter spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); OnItemSelectedListener sp_composanteListener = new ItemSelectedSpinner(composanteTitre, sp_composante_cesDroit, ...); // tous les objets dont tu as besoin dans le listener sp_composante.setOnItemSelectedListener(sp_composanteListener); } } ItemSelectedSpinner.java import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; public class ItemSelectedSpinner implements OnItemSelectedListener { private TextView composanteTitre; private Spinner sp_composante_cesDroit; // déclarer tous les objets dont tu as besoin public ItemSelectedSpinner(TextView pComposanteTitre, Spinner sp_composante_cesDroit, ...) { // tous les éléments dont tu as besoin this.composanteTitre = pComposanteTitre; this.sp_composante_cesDroit = pSp_composante_cesDroit; // ... } public void onItemSelected(AdapterViewparent, View v, int pos, long row) { switch (pos) { case 1: composanteTitre.setText("Filière "+"CES Droit Châteauroux"); sp_composante_cesDroit.setVisibility(View.VISIBLE); break; case 2: composanteTitre.setText("Filière "+"CES Lettres Châteauroux"); sp_composante_cesLettres.setVisibility(View.VISIBLE); break; case 3: composanteTitre.setText("Filière "+"Droit, Economie, Gestion"); sp_composante_droitEco.setVisibility(View.VISIBLE); break; case 4: composanteTitre.setText("Filière "+"Iut Bourges"); sp_composante_iutBourges.setVisibility(View.VISIBLE); break; case 5: composanteTitre.setText("Filière "+"Iut Orléans"); sp_composante_iutOrleans.setVisibility(View.VISIBLE); break; case 6: composanteTitre.setText("Filière "+"Lettres, Langues, Sciences Humaines"); sp_composante_lettresLangues.setVisibility(View.VISIBLE); break; case 7: composanteTitre.setText("Filière "+"OSUC"); sp_composante_OSUC.setVisibility(View.VISIBLE); break; case 8: composanteTitre.setText("Filière "+"Polytech\'Orléans"); sp_composante_polytechOrleans.setVisibility(View.VISIBLE); break; case 9: composanteTitre.setText("Filière "+"Sciences"); sp_composante_sciences.setVisibility(View.VISIBLE); break; case 10: composanteTitre.setText("Filière "+"Staps"); sp_composante_staps.setVisibility(View.VISIBLE); break; case 11: composanteTitre.setText("Filière "+"UFR DEG Bourges"); sp_composante_ufrDeg.setVisibility(View.VISIBLE); break; default: break; } } @Override public void onNothingSelected(AdapterViewarg0) { /* rien */ } } Solution 2 Un seul fichier Main.java import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("Alerte", "Debut"); // Mettre en final les variables qui seront utilisées dans le listener final Spinner sp_annee = (Spinner)findViewById(R.id.sp_annee); final Spinner sp_semaine = (Spinner)findViewById(R.id.sp_semaine); final Spinner sp_jour = (Spinner)findViewById(R.id.sp_jour); final Spinner sp_composante = (Spinner)findViewById(R.id.sp_composante); final Spinner sp_composante_cesDroit = (Spinner)findViewById(R.id.sp_composante_cesDroit); final Spinner sp_composante_cesLettres = (Spinner)findViewById(R.id.sp_composante_cesLettres); final Spinner sp_composante_droitEco = (Spinner)findViewById(R.id.sp_composante_droitEco); final Spinner sp_composante_iutBourges = (Spinner)findViewById(R.id.sp_composante_iutBourges); final Spinner sp_composante_iutOrleans = (Spinner)findViewById(R.id.sp_composante_iutOrleans); final Spinner sp_composante_lettresLangues = (Spinner)findViewById(R.id.sp_composante_lettresLangues); final Spinner sp_composante_OSUC = (Spinner)findViewById(R.id.sp_composante_OSUC); final Spinner sp_composante_polytechOrleans = (Spinner)findViewById(R.id.sp_composante_polytechOrleans); final Spinner sp_composante_sciences = (Spinner)findViewById(R.id.sp_composante_sciences); final Spinner sp_composante_staps = (Spinner)findViewById(R.id.sp_composante_staps); final Spinner sp_composante_ufrDeg = (Spinner)findViewById(R.id.sp_composante_ufrDeg); final TextView composanteTitre = (TextView)findViewById(R.id.sp_composanteTitre); ArrayAdapter spAnneeAdapter = ArrayAdapter.createFromResource(this, R.array.sta_annee, android.R.layout.simple_spinner_item); spAnneeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_annee.setAdapter(spAnneeAdapter); ArrayAdapter spSemaineAdapter = ArrayAdapter.createFromResource(this, R.array.sta_semaine, android.R.layout.simple_spinner_item); spSemaineAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_semaine.setAdapter(spSemaineAdapter); ArrayAdapter spJourAdapter = ArrayAdapter.createFromResource(this, R.array.sta_jour, android.R.layout.simple_spinner_item); spJourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_jour.setAdapter(spJourAdapter); ArrayAdapter spComposanteAdapter = ArrayAdapter.createFromResource(this, R.array.sta_composante, android.R.layout.simple_spinner_item); spComposanteAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_composante.setAdapter(spComposanteAdapter); OnItemSelectedListener sp_composanteListener = new ItemSelectedSpinner(); sp_composante.setOnItemSelectedListener(sp_composanteListener); } public class ItemSelectedSpinner implements OnItemSelectedListener { public void onItemSelected(AdapterViewparent, View v, int pos, long row) { switch (pos) { case 1: composanteTitre.setText("Filière "+"CES Droit Châteauroux"); sp_composante_cesDroit.setVisibility(View.VISIBLE); break; case 2: composanteTitre.setText("Filière "+"CES Lettres Châteauroux"); sp_composante_cesLettres.setVisibility(View.VISIBLE); break; case 3: composanteTitre.setText("Filière "+"Droit, Economie, Gestion"); sp_composante_droitEco.setVisibility(View.VISIBLE); break; case 4: composanteTitre.setText("Filière "+"Iut Bourges"); sp_composante_iutBourges.setVisibility(View.VISIBLE); break; case 5: composanteTitre.setText("Filière "+"Iut Orléans"); sp_composante_iutOrleans.setVisibility(View.VISIBLE); break; case 6: composanteTitre.setText("Filière "+"Lettres, Langues, Sciences Humaines"); sp_composante_lettresLangues.setVisibility(View.VISIBLE); break; case 7: composanteTitre.setText("Filière "+"OSUC"); sp_composante_OSUC.setVisibility(View.VISIBLE); break; case 8: composanteTitre.setText("Filière "+"Polytech\'Orléans"); sp_composante_polytechOrleans.setVisibility(View.VISIBLE); break; case 9: composanteTitre.setText("Filière "+"Sciences"); sp_composante_sciences.setVisibility(View.VISIBLE); break; case 10: composanteTitre.setText("Filière "+"Staps"); sp_composante_staps.setVisibility(View.VISIBLE); break; case 11: composanteTitre.setText("Filière "+"UFR DEG Bourges"); sp_composante_ufrDeg.setVisibility(View.VISIBLE); break; default: break; } } @Override public void onNothingSelected(AdapterViewarg0) { /* rien */ } } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.