en cliquant sur la liste personnalisée avec cases à cocher
-
23-08-2019 - |
Question
J'ai peuplé un ListActivity
d'un Cursor
utilisant SimpleCursorAdapter
qui démarre une autre activité lorsque l'un des éléments de la liste ont été cliqué. J'utilise aussi ViewBinder
pour faire une transformation personnalisée des données.
Je veux ajouter un CheckBox
à chaque ligne dans la liste donc j'ai changé le point de vue et a ajouté un CheckBox
avec gravité droit.
Ajout du CheckBox
a supprimé la possibilité de cliquer sur les articles. La méthode onListItemClick
je ne ListActivity
dans PRÉPONDÉRANTS est appelé plus lorsque vous appuyez sur un élément de la liste. Retrait de la CheckBox
fixe cela. Pourquoi est-ce?
En outre, comment puis-je configurer la liste afin qu'il continue d'accomplir ma fonctionnalité requise si la partie principale de l'élément de liste est cliqué, mais ont des fonctionnalités supplémentaires lorsque le CheckBox
dans l'élément est vérifié? Est-ce que la mise en œuvre de onCheckedChangedListener
ou est la même instance de vue réutilisée pour chaque élément dans la liste?
La solution 2
On dirait que SimpleCursorAdapter
est trop primitive pour ce que je voulais réaliser.
Je suis passé à la mise en œuvre CursorAdapter
et retourner une nouvelle vue à l'aide du LayoutInflater
dans ma mise en œuvre de la méthode newView
.
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
}
Dans Bindview je puis définir un OnClickListener
personnalisé à mon principal LinearLayout
puis une autre OnCheckedChangeListener
au CheckBox
.
Pour tout cela à regarder à droite je devais mettre android de menuitem drawable arrière-plan du LinearLayout
:
android:background="@android:drawable/menuitem_background"