EDIT: Veuillez ignorer cette question - J'ai réussi à la résoudre d'une manière qui fonctionne bien pour ce dont j'ai besoin (voir ma propre réponse ci-dessous).Besoin d'aide avec une configuration personnalisée Spinner/ArrayAdapter
J'ai une classe WeatherSpinner qui étend Spinner. La classe montre les noms de région que j'ai fait à l'origine en utilisant un ArrayAdapter<String>
mais je veux maintenant utiliser ArrayAdapter<Locale>
(Locale est une classe abstraite 'vide' de mon cru).
Je reçois un ClassCastException
en essayant de remplir mon ArrayAdapter avec les éléments suivants ...
protected ArrayList<?> theList;
protected ArrayAdapter<Locale> aa = null;
...
protected void updateContents(ArrayList<?> list, int selectedItem) {
theList = list;
// Exception thrown on next line
aa = new ArrayAdapter<Locale>(theContext, android.R.layout.simple_spinner_item,
(Locale[]) theList.toArray());
...
}
Je passe un objet RegionList
dans updateContents() comme la 'liste' paramètre et RegionList extends ArrayList<Region>
et Region extends Locale
. J'ai également passé outre la méthode toString()
de la région pour renvoyer une chaîne valide.
Qu'est-ce que je ne vois pas ici? Est-ce que je me trompe sur la façon dont fonctionne ArrayList<?>.toArray()
?