Garder l'élément sélectionné dans ListView en surbrillance dans Android
Dans le développement Android, il est souvent souhaitable de mettre en surbrillance l'élément sélectionné dans un ListView tout en affichant les détails de l’élément sélectionné dans un ListView séparé. Cet article aborde un problème courant lié à ce scénario.
Problème :
Lorsqu'un utilisateur sélectionne un élément dans un ListView (lv_cli), les détails du client sélectionné doit être affiché dans un ListView séparé (lv_cli_det). Cependant, ce faisant, l'élément sélectionné par l'utilisateur dans lv_cli perd sa surbrillance.
Solution :
La solution réside dans l'utilisation de l'attribut android:choiceMode="singleChoice" dans la mise en page XML. Cet attribut spécifie le comportement de sélection du ListView, permettant de sélectionner un seul élément à la fois. L'arrière-plan de l'élément sélectionné sera automatiquement mis en surbrillance à l'aide de l'attribut android:listSelector="#666666".
Code :
<ListView android:id="@+id/cli_lista" android:layout_width="512dp" android:layout_height="wrap_content" android:fadeScrollbars="false" android:choiceMode="singleChoice" android:listSelector="@color/my_selector" > </ListView>
Vous pouvez également définir ces attributs par programme en utilisant les méthodes setSelector() et setChoiceMode() de la classe ListView.
En utilisant cette approche, l'élément sélectionné dans lv_cli restera en surbrillance tandis que les détails du client sélectionné sont affichés dans lv_cli_det.
Remarque importante :
Il est important d'éviter de gérer les arrière-plans d'affichage directement en réponse aux événements onItemClick. Étant donné que les vues sont des objets temporaires, cette approche peut conduire à un comportement imprévisible lorsque les éléments défilent hors de la vue et sont réutilisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!