Sélection de plusieurs éléments dans ListView

Comment sélectionner un élément multiple dans ListView dans Android.

  • La meilleure façon de stocker SparseBooleanArray dans Bundle?
  • Erreur lors de l'utilisation de OnClickListener (Intention)
  • Créer une carte d'image Google Map
  • Différence entre <supports-écrans> et <écrans compatibles> sur Android
  • Taille de l'écran Android HDPI, LDPI, MDPI
  • Comment appelons-nous androidTest à un projet Peer Eclipse-Style?
  • 8 Solutions collect form web for “Sélection de plusieurs éléments dans ListView”

    En fait, vous pouvez;) C'est juste une question d'expérience utilisateur, n'est-ce pas?

    Essayez ceci, (1) pour le contrôle de la liste

    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setItemsCanFocus(false); 

    (2) définir l'élément de la liste comme

     <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" android:paddingLeft="6dip" android:paddingRight="6dip" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:background="@drawable/txt_view_bg" /> 

    Ceci est identique à android.R.layout.simple_list_item_multiple_choice sauf android:background="@drawable/txt_view_bg

    (3) Et définissez txt_view_bg.xml dessiné comme

     <item android:drawable="@drawable/selected" android:state_checked="true" /> <item android:drawable="@drawable/not_selected" /> 

    Remarque: – La façon privilégiée de gérer le choix multiple est de suivre les choix de votre auto avec un clic sur l'élément, plutôt que selon son état dans la liste.

    Vous ne pouvez pas "sélectionner" plusieurs éléments dans un ListView . Vous pouvez utiliser CHOICE_MODE_MULTIPLE et vérifier plusieurs éléments dans un ListView .

    Étape 1: setAdapter à votre liste.

      listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, GENRES)); 

    Étape 2: définir le mode de choix pour listview. La deuxième ligne du code ci-dessous représente la case à cocher qui doit être vérifiée.

     listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setItemChecked(2, true); listView.setOnItemClickListener(this); private static String[] GENRES = new String[] { "Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama", "Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller" }; 

    Étape 3: les vues vérifiées sont renvoyées dans SparseBooleanArray, afin que vous puissiez utiliser le code ci-dessous pour obtenir une clé ou des valeurs. L'échantillon ci-dessous affiche simplement les noms sélectionnés dans une seule chaîne.

     @Override public void onItemClick(AdapterView<?> adapter, View arg1, int arg2, long arg3) { SparseBooleanArray sp=getListView().getCheckedItemPositions(); String str=""; for(int i=0;i<sp.size();i++) { str+=GENRES[sp.keyAt(i)]+","; } Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show(); } 

    Cet exemple stocke les valeurs que vous avez vérifiées et les affiche dans un toast. Et il se met à jour lorsque vous désélectionnez les éléments http://android-coding.blogspot.ro/2011/09/listview-with-multiple-choice.html

    Pour "mettre à jour" le message Toast après avoir décollé certains éléments, mettez simplement cette ligne dans la boucle for:

     if (sp.valueAt(i)) 

    Il en résulte:

     for(int i=0;i<sp.size();i++) { if (sp.valueAt(i)) str+=names[sp.keyAt(i)]+","; } 

    Et pour l'obtenir:

     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d(getLocalClassName(), "onItemClick(" + view + "," + position + "," + id + ")"); } }); 

    Vous devez sélectionner l'option dans ArrayAdapter :

     ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_single_choice, countries); 

    La meilleure façon est d'avoir une barre d'action contextuelle avec listview sur multiselect. Vous pouvez créer listview en tant que multiselect en utilisant le code suivant

     listview.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL); 

    Et maintenant, configurez l'écoute multichoice pour Listview, vous pouvez voir la mise en œuvre complète de la liste de lecture multiselect à la liste de sélection multi- options d' Android

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.