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.

Était-ce utile?

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:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top