L'adaptateur ArrayAdapter
Comme indiqué en introduction, il s'agit d'une interface commune permettant le passage de données à une interface de sélection.
ArrayAdapter est le plus simple et le plus commun. Il suffit de lui passer un tableau ou une instance de javaLangage JAVA est un langage de programmation orienté objet qui s'exécute sur une JVM (Java Virtual Machine ou machine virtuelle JAVA.).util.List (cf. collection).
Parmis les constructeurs disponibles, il y a :
public ArrayAdapter (Context context, int textViewResourceId, T[] objects)
public ArrayAdapter (Context context, int textViewResourceId, List<T> objects)
En entrée:
context: Le contexte courant, généralement l'instance de votre
activité.
textViewResourceId: L'identifiant de la ressource de la vue qui recevra les
données "reformatées"
objects: Les données sous forme de tableau ou une liste des données.
Exemple d'utilisation
String[] items = {"élément 1", "élément
2 ", "élément 3"};
new ArrayAdapter<String>(this, androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...).R.layout.votre_widget, items);
Customisation
Si vous vous créez vos propres vues, il sera possible de créer une sous classe d'ArrayAdapter.
La méthode à redéfinir sera la méthode getView(). En temps normal, celle-ci va balayer les objets et déclencher toString() sur ces objets pour les transformer dans la vue souhaitée.
D'autres méthodes
public void notifyDataSetChanged ()
Cette méthode est déclenchée lorsqu'une modification a eu lieu dans les données de l'adaptateur (add/remove/insert ou clear()) et que le flag notifyOnChange est positionné à vrai (cf. setNotifyOnChange (boolean notifyOnChange) expliquée juste après...).
Ce qui permettra aux objets de type View de se rafraichir afin de prendre en compte ses modifications.
Un appel direct
à cette méthode change automatiquement à vrai le flag notifyOnChange
(positionnable via setNotifyOnChange (boolean notifyOnChange)).
public void setNotifyOnChange (boolean notifyOnChange)
Cette méthode permet le lancement automatique de notifyDataSetChanged () lorsqu'un changement sur les données à lieu (add/remove/insert ou clear()).
A vrai par défaut, et automatiquement modifié à vrai si appel direct à la méthode notifyDataSetChanged ().
A faux, ce sera
à vous de voir s'il faut lancer ou non manuellement la méthode
notifyDataSetChanged () afin de rafraichir les objets vues associés.
Les méthodes suivantes vont permettre d'agir sur les données de l'adapateur:
public void add (T object) pour ajouter un objet à la fin de la liste
public void addAll (Collection<? extends T> collection) (API 11) pour
ajouter une collection à la fin de la liste
public void addAll (T... items) (API 11) pour ajouter un ensemble d'items à
la fin de la liste.
public void insert (T object, int index) pour insérer un objet à
un index spéicifié
public void remove (T object) pour supprimer un objet.
public void clear () pour effacer toutes les données de la liste.
getCount() pour connaître le nombre de données.
Et encore d'autres méthodes...
public abstract Object getItem (int position) retourne l'objet qui se trouve
à la position indiquée.
public abstract long getItemId (int position) qui retournera l’id de l'objet.
...