Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 9
S’amuser avec les listes 97
et son état de sélection. Dans un vrai système, il pourrait s’agir d’objets remplis à partir
d’un Cursor et les propriétés auraient des significations métier plus importantes.
● Les méthodes utilitaires comme onListItemClick() doivent être modifiées pour
refléter les différences entre un modèle String pur et l’utilisation d’un RowModel.
● Dans getView(), la sous-classe d’ArrayAdapter (CheckAdapter) teste si convertView est null, auquel cas elle crée une nouvelle ligne par inflation d’un layout simple
(voir le code qui suit) et lui attache un ViewWrapper. Pour la RatingBar de la ligne, on
ajoute un écouteur onRatingChanged() anonyme qui examine le marqueur de la ligne
(getTag()) et le convertit en entier représentant la position dans l’ArrayAdapter de ce
qu’affiche cette ligne. La barre d’évaluation peut alors obtenir le bon RowModel pour la
ligne et mettre à jour le modèle en fonction de son nouvel état. Elle modifie également
le texte situé à côté de la barre pour qu’il corresponde à l’état de celle-ci.
● On s’assure toujours que la RatingBar a le bon contenu et dispose d’un marqueur (via
setTag()) pointant vers la position de la ligne dans l’adaptateur.
La disposition de la ligne est très simple : elle contient une RatingBar et un label
TextView placés dans un conteneur LinearLayout :
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/rate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="3"
android:stepSize="1"
android:rating="2" />
android:id="@+id/label"
android:paddingLeft="2px"
android:paddingRight="2px"
android:paddingTop="2px"
android:textSize="40sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
Le ViewWrapper est tout aussi simple, car il se contente d’extraire ces deux widgets de la
View de la ligne :
class ViewWrapper {
View base;
Livre Android.book Page 97 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 9
S’amuser avec les listes 97
et son état de sélection. Dans un vrai système, il pourrait s’agir d’objets remplis à partir
d’un Cursor et les propriétés auraient des significations métier plus importantes.
● Les méthodes utilitaires comme onListItemClick() doivent être modifiées pour
refléter les différences entre un modèle String pur et l’utilisation d’un RowModel.
● Dans getView(), la sous-classe d’ArrayAdapter (CheckAdapter) teste si convertView est null, auquel cas elle crée une nouvelle ligne par inflation d’un layout simple
(voir le code qui suit) et lui attache un ViewWrapper. Pour la RatingBar de la ligne, on
ajoute un écouteur onRatingChanged() anonyme qui examine le marqueur de la ligne
(getTag()) et le convertit en entier représentant la position dans l’ArrayAdapter de ce
qu’affiche cette ligne. La barre d’évaluation peut alors obtenir le bon RowModel pour la
ligne et mettre à jour le modèle en fonction de son nouvel état. Elle modifie également
le texte situé à côté de la barre pour qu’il corresponde à l’état de celle-ci.
● On s’assure toujours que la RatingBar a le bon contenu et dispose d’un marqueur (via
setTag()) pointant vers la position de la ligne dans l’adaptateur.
La disposition de la ligne est très simple : elle contient une RatingBar et un label
TextView placés dans un conteneur LinearLayout :
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="3"
android:stepSize="1"
android:rating="2" />
android:paddingLeft="2px"
android:paddingRight="2px"
android:paddingTop="2px"
android:textSize="40sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
Le ViewWrapper est tout aussi simple, car il se contente d’extraire ces deux widgets de la
View de la ligne :
class ViewWrapper {
View base;
Livre Android.book Page 97 Dimanche, 8. novembre 2009 12:23 12
