Je suis tout nouveau dans Android et j'essaie de créer un spinner par programmation et de le nourrir avec les données d'un tableau, mais Eclipse me donne un avertissement que je ne peux pas gérer.
Voici ce que j'ai eu:
Cet ArrayList contient les éléments qui devraient être dans le disque (sera rempli à partir d'un fichier plus tard):
ArrayList<String> spinnerArray = new ArrayList<String>();
C'est le code que j'ai trouvé sur un site qui devrait créer le spinner:
Spinner spinner = new Spinner(this);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
Android.R.layout.simple_spinner_dropdown_item,
spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
Maintenant, la deuxième ligne (ArrayAdapter ...) me donne un avertissement dans Eclipse disant "ArrayAdapter is a raw type... References to generic type ArrayAdapter<T> should be parameterized"
, je ne sais pas comment résoudre ce problème (ni ce que cela signifie en premier lieu :)).
C'est juste un avertissement et l'application semble fonctionner correctement, mais j'aimerais quand même comprendre ce qui ne va pas et le réparer. Tout indice est apprécié.
Salutations, Select0r
ArrayAdapter<String>
devrait fonctionner.
c'est à dire.:
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);
De la même manière avec Array
// Array of choices
String colors[] = {"Red","Blue","White","Yellow","Black", "Green","Purple","Orange","Grey"};
// Selection of the spinner
Spinner spinner = (Spinner) findViewById(R.id.myspinner);
// Application of the Array to the Spinner
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_spinner_item, colors);
spinnerArrayAdapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item); // The drop down view
spinner.setAdapter(spinnerArrayAdapter);
Cela a fonctionné pour moi avec un string-array nommé shoes
chargé à partir des ressources du projet:
Spinner spinnerCountShoes = (Spinner)findViewById(R.id.spinner_countshoes);
ArrayAdapter<String> spinnerCountShoesArrayAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_spinner_dropdown_item, getResources().getStringArray(R.array.shoes));
spinnerCountShoes.setAdapter(spinnerCountShoesArrayAdapter);
Ceci est mon fichier de ressources (res/values/arrays.xml
) avec le tableau de chaînes:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="shoes">
<item>0</item>
<item>5</item>
<item>10</item>
<item>100</item>
<item>1000</item>
<item>10000</item>
</string-array>
</resources>
Avec cette méthode, il est plus facile de le rendre multilingue (si nécessaire).
Cela a réellement fonctionné pour moi
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
this, Android.R.layout.simple_spinner_item, spinnerArray);
spinnerArrayAdapter.setDropDownViewResource( Android.R.layout.simple_spinner_dropdown_item );
spinner = (Spinner) findViewById( R.id.spinner );
spinner.setAdapter(spinnerArrayAdapter);
ça marche pour moi: -
String[] array = {"A", "B", "C"};
String abc = "";
Spinner spinner = new Spinner(getContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getContext(), Android.R.layout.simple_spinner_item, array); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
J'utilise un fragment.
En kotlin, vous pouvez le faire de cette façon:
val values = arrayOf(
"cat",
"dog",
"chicken"
)
ArrayAdapter(
this,
Android.R.layout.simple_spinner_item,
values
).also {
it.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item)
spinner.adapter = it
}