Comment faire case cochée dans la OnItemClickListener ()?
-
26-10-2019 - |
Question
J'ai une case à cocher dans ma rangée ListView qui ressemble à ceci.
===========================================
[CheckBox] [TextView] [TextView] [TextView]
===========================================
le code XML est ici
<CheckBox
android:id="@+id/course_search_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:clickable="false"
android:focusable="false" />
Et je l'ai déjà fait la case à cocher et non cliquable focalisable pour que l'événement de clic sera transmis au ListView.
Ce que je veux faire ici est que lorsque l'utilisateur clique sur le listview, faire CheckBox vérifié et ajouter la position cliquée de listview à un ArrayList. Alors, comment puis-je faire CheckBox vérifié dans un OnItemClickListener de ListView?
Aide s'il vous plaît, merci.
La solution
Vous pouvez ajouter ce code dans votre OnItemClickListener
:
public void onItemClick(AdapterView parent, View view, int position, long id){
CheckBox box = (CheckBox)view.findViewById(R.id.course_search_checkbox);
box.setChecked(true);
}
Autres conseils
Eh bien, si elle est une liste de sélection unique alors vous avez besoin de ces APIs de ListView
pour obtenir la position / id:
getSelectedItemId()
getSelectedItemPosition()
Et maintenant, si vous avez mis en place votre adaptateur pour ListView. Là-dedans pour apis comme bindView
, vous avez défini l'état vérifié getView
etc (selon que vous avez utilisé l'adaptateur) sur base des apis ci-dessus. Quelque chose comme
public View getView(int position, View convertView, ViewGroup parent)
{
ListView listView = (ListView)parent; // This is the parent view group passed as argument.
CheckBox cb = (CheckBox)convertView.findViewById(R.id.check_box);
if(getSelectedItemPosition() == position)
cb.setChecked(true);
else
cb.setChecked(true);
}
Pour Multisélection ci-dessous vous avez besoin apis de ListView:
getCheckedItemPositions
Le code de vérification de la case à cocher sera similaire à la sélection unique (pas exactement si).
NOTE: code mentionné est juste pour la référence. Il est pas un code optimisé. Sans aucun doute besoin de modifications. REMARQUE: