Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence.
Bill the Lizard le
utilisez cet android.R.layout.simple_spinner_dropdown_item à la place de cet android.R.layout.simple_spinner_item il a l'air beaucoup mieux
sai Gorantla
Qu'est-ce que array_spinner? le nom du tableau est arraySpinner. est-ce une faute d'orthographe ou ça doit être comme ça seulement>
SurajS
1
Pensez à ajouter adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);(avant s.setAdapter(adapter);d'améliorer l'apparence de la liste déroulante.
ban-geoengineering
1
@StephenM a changé le lien
pankajagarwal
99
J'ai trouvé une autre option: la définition du spinner dans le fichier de mise en page
Pour ajouter un élément dans Spinner, vous pouvez faire une chose, essayer de créer un adaptateur, puis ajouter / supprimer des éléments dans l'adaptateur, puis vous pouvez facilement lier cet adaptateur à spinner en utilisant la setAdapter()méthode.
merci pour votre réponse, j'ai également eu la solution maintenant, je suis confronté à un problème.
Je veux récupérer l'élément sélectionné du spinner c'est-à-dire sa position car je veux le passer à une autre méthode voir ce que j'ai fait ... dataspin.setOnItemSelectedListener (new myitemlistener ());
dataspin est mon objet Spinner
@Override public void onItemSelected (AdapterView <?> Parent, View view, int position, long id) {// TODO Méthode générée automatiquement stub String p = parent.getItemAtPosition (position) .toString (); int pos = (int) parent.getItemIdAtPosition (position); System.out.println ("position du spinner ..." + pos); setSearchView (pos); }
si je fais cela, l'élément spinner ne s'affiche pas
mais alors comment obtenez-vous l'élément sélectionné?
Démotivé
1
Premier TypeCast dans le fichier Java. Ensuite, utilisez le spinner Spinner; spinner = findViewById (R.id.spinner); spinner.setOnItemClickListener (new AdapterView.OnItemClickListener () {@Override public void onItemClick (AdapterView <?> parent, vue vue, position int, id long) {}});
ZIA ANSARI
5
Ce code lit essentiellement un objet de tableau JSON et convertit chaque ligne en une option dans le spinner qui est passée en paramètre:
publicArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList,String aField){ArrayAdapter<String> aArrayAdapter =newArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);//android.R.layout.simple_spinner_dropdown_itemtry{for(int i =0; i < aArrayList.size(); i++){
aArrayAdapter.add(aArrayList.get(i).getString(aField));}}catch(JSONException e){
e.printStackTrace();ShowMessage("Error while reading the JSON list");}return aArrayAdapter;}
Réponses:
Fichier XML:
Fichier Java:
Voir l'exemple de spinner .
la source
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(avants.setAdapter(adapter);
d'améliorer l'apparence de la liste déroulante.J'ai trouvé une autre option: la définition du spinner dans le fichier de mise en page
Définition des éléments dans le fichier array.xml:
Lien vers la source complète du code
la source
Essayez ce code:
Vous pouvez également ajouter une valeur d'élément spinner via le fichier xml du tableau de chaînes.
Dans mainActivity.java:
la source
Pour ajouter un élément dans Spinner, vous pouvez faire une chose, essayer de créer un adaptateur, puis ajouter / supprimer des éléments dans l'adaptateur, puis vous pouvez facilement lier cet adaptateur à spinner en utilisant la
setAdapter()
méthode.Voici un exemple:
la source
Dans votre mise en page:
la source
Ce code lit essentiellement un objet de tableau JSON et convertit chaque ligne en une option dans le spinner qui est passée en paramètre:
la source
Ajoutez une double flèche à la mise en page XML, puis ajoutez ce code au fichier Java:
la source
Ajoutez ce code après avoir mis à jour la liste
Supposer:
Le nom de variable ArrayAdapter <String> est dataAdapter et le nom de variable List est keys .
la source
Pour ajouter un autre élément à Spinner, vous pouvez:
la source
C'est juste pour effacer l'adaptateur, ajouter tous les itens et notifier le changement comme ci-dessous:
la source
Un moyen plus simple consiste à utiliser la bibliothèque de spinner de matériaux: https://github.com/jaredrummler/MaterialSpinner
ajoutez d'abord à votre projet:
et utilisez comme ceci:
et du code java que vous pouvez ajouter des éléments en java si facilement:
la source