2017-08-29 7 views
-2

Je dois faire un formulaire personnalisé (en affichant x champs). Il y a la façon dont je crée un objet liste spinner:fill spinner android studio par programmation

Spinner[] listeCouleurs = new Spinner[nbEquipes]; 

listeCouleurs: is the name of the list

nbEquipes: is an int, (number of teams)

Et il y a les éléments que je veux insérer dans la liste (listeCouleurs):

ArrayList<String> couleurs = new ArrayList<String>(); 
    couleurs.add("Rouge"); 
    couleurs.add("Bleu"); 
    couleurs.add("Vert"); 
    couleurs.add("Rose"); 
    couleurs.add("Jaune"); 

Et puis, il y a la façon dont j'insérer des éléments dans x spinner:

listeCouleurs[i] = new Spinner(this); 
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,listeCouleurs[i], couleurs); 

Mais, il y a cette erreur:

Error:(94, 48) error: no suitable constructor found for ArrayAdapter(ConfigGame,Spinner,ArrayList) constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable (argument mismatch; Spinner cannot be converted to int) constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable (argument mismatch; Spinner cannot be converted to int) constructor ArrayAdapter.ArrayAdapter(Context,int,List) is not applicable (argument mismatch; Spinner cannot be converted to int)

Comment résoudre ce problème?

Cordialement

+0

Vous avez la réponse écrite dans le message d'erreur. Il nécessite les connaissances de base en programmation générale pour résoudre ce problème. S'il vous plaît apprendre les bases même avant de commencer à poser des questions sur SO. –

Répondre

0

Le second argument du constructeur ArrayAdapter doit être un entier non un Spinner

Exemple d'appel:

Spinner spinner = new Spinner(this); 
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerArray); //selected item will look like a spinner set from XML 
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(spinnerArrayAdapter); 

Pour plus d'informations sur les arguments du constructeur possibles voir: https://developer.android.com/reference/android/widget/ArrayAdapter.html

+0

Je suis d'accord avec cela, mais le problème est que je suis en train de créer spinner par programmation, pas avec le XML ... – FindL

+0

Le deuxième argument est un indicateur pour le spinner de la façon dont il va être montré. 'android.R.layout.simple_spinner_item' est interne à Android – joao86

0

Assurez-vous d'inclure ces deux lignes après l'initialisation de l'adaptateur :

spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(spinnerArrayAdapter); 

Espérons que cela aide!

+0

Cela n'a absolument rien à voir avec une erreur de compilation d'un constructeur inadapté étant disponible. – csmckelvey