créer adaptateur pour remplir Spinner avec des objets
J'ai une application Android avec une Spinner
et voulez le remplir dynamiquement avec mes propres objets. Les objets existent déjà comme un List<T>
.
Les objets sont de type Category
:
public class Category implements Serializable {
private Long id;
private String name;
//constructors
//getter & setter
//hashCode, equals
//toString
}
Je sais que je dois écrire un Adaptateur. Comment dois-je faire? J'ai essayé de trouver quelques exemples... pas de chance. S'il vous plaît conseils.
Découvrez la réponse suivante pour une solution complète sur la façon de le faire sans la création d'un CustomAdapter: stackoverflow.com/a/21169383/293280
OriginalL'auteur Daniel Kutik | 2011-06-27
Vous devez vous connecter pour publier un commentaire.
Voici mes 5 cents. J'ai eu un problème similaire. Je travaillais avec SimpleCursorAdapter qui implémente l'interface SpinnerAdapter, mais arrivé seulement jusqu'à ce que le SDK de la version 11 (Android 3.0). J'ai prévu mon application fonctionne avec SDK 8 (Android 2.2) et, donc, j'ai dû remplacer SimpleCursorAdapter avec un autre, ou mon propre. Le véritable challenger est que j'ai aussi utilisé un XML personnalisé de mise en page pour spinner et il a montré plusieurs champs de curseur c'est à dire curseur de la carte. Voici donc ma solution après beaucoup de recherche, et l'info n'a pas été facile à trouver.
Voici le fichier de mise en page utilisé dans spinner nommé spin_layout.xml :
Et voici la carte mise en œuvre de SpinnerAdapter et l'extension (à l'aide d'un peu d'aide) BaseAdapter. Le Curseur qui était utilisé à l'origine a été transformé en Liste et passé dans le constructeur, avec une activité contenant de la toupie.
Contrairement à d'autres solutions que vous trouvez sur le web, la méthode getItemId établit le lien avec id champ de base de données, tout comme SimpleCursorAdapter. Cet id est l'argument passé onItemSelected(AdapterView arg0, Vue arg1, int position, long id) dans OnItemSelectedListener pour spinner.setOnItemSelectedListener. Méthode getView gonflé spin_layout.xml, identifie les deux points de vue contenus dans la mise en page et leur assigne des valeurs (comme une Chaîne de caractères!).
SimpleCursorAdapter est sur android.de soutien.v4 paquet, de sorte que vous pouvez l'utiliser clair retour à l'API 4.
OriginalL'auteur MSquare
C'est un exemple simple. Ne vous laissez pas berner par le "curseur" du nom, c'est juste l'aide d'une Liste. L'idée est simple: s'étendre à partir de
BaseAdapter
et de mettre en œuvre manquant méthodes (c'est une classe abstraite); et n'oubliez pas de remplacer legetView()
méthode pour fournir le "visuel" de la représentation de votreCategory
.OriginalL'auteur dmon
Je ne suis pas sûr si cela aide, mais le SDK Android a un joli petit exemple de la transmission de données à un compteur à partir d'un tableau. La conversion d'une Liste à un tableau est trivial, donc peut-être que cela va vous diriger dans la bonne direction.
http://developer.android.com/resources/samples/Spinner/src/com/android/example/spinner/SpinnerActivity.html
Bonne chance.
OriginalL'auteur duanemat