0
votes

Comment sélectionner la valeur sélectionnée multivalue dans RECYCLERVIEW

Je veux obtenir des identifiants sélectionnés dans une activité sélectionnée dans l'adaptateur RECYCLERVIEW

holder.images.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (holder.checked.getVisibility() == View.VISIBLE) {

                holder.checked.setVisibility(View.GONE);



            } else if (holder.checked.getVisibility() == View.GONE) {


                holder.checked.setVisibility(View.VISIBLE);

            }
        }
    });


2 commentaires

1. Utilisez un SPARSARRAY pour stocker les positions sélectionnées 2. Mettez à jour cette pièce de ménage dans la méthode OnClick / OnlongClicked pour ajouter / supprimer la position sélectionnée, utilisez l'appel en notification (position) pour mettre à jour l'élément sélectionné / non sélectionné. 3. Utilisez le SPARSARRAY pour marquer correctement les éléments sélectionnés / non sélectionnés dans votre méthode Onbindviewholder () de l'adaptateur. 4. Fournissez un getter pour cette SPARSARRAY dans votre adaptateur pouvant être utilisé par l'activité.


Vous voulez dire que lorsque vous cliquez sur un élément, vous souhaitez obtenir la position sélectionnée dans votre adaptateur et vous souhaitez utiliser cette position dans l'activité, n'est-ce pas?


4 Réponses :


1
votes

Liste d'utilisation Pour gérer vos éléments ou positions sélectionnés

Liste de Declare pour stocker des éléments sélectionnés P>

holder.checked.setVisibility(selectedPositions.contains(position)?View.VISIBLE:View.GONE);
holder.images.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (selectedPositions.contains(position)) {
                    holder.checked.setVisibility(View.GONE);
                      selectedPositions.removeAt(selectedPositions.indexOf(position));
                    } else  {
                    holder.checked.setVisibility(View.VISIBLE);
                    selectedPositions.add(position);

            }
        }
    });


1 commentaires

Obtenir une erreur java.lang.indexoutofboundsException: Index: 1, Taille: 0 à Java.Util.ArrayList.Ajouter (ArrayList.java:483) à Cos.MunchMash.Adpater.fooDeadapter.FavouritesSubAgoryAnDap Ter $ 1.Vousclick r.java:56)



0
votes

Maintenant, vous devez déclarer une liste pour contenir ces identifiants sélectionnés xxx

ce que vous pouvez faire est de déclarer un isselected booléen dans votre modèle. Dans Onbindviewholder Méthode, définissez la visibilité sous la forme xxx

Lorsque vous cliquez sur l'image Vérifier s'il était déjà sélectionné en fonction de celui que vous pouvez ajouter / supprimer son identifiant xxx

espère que cela aide.


0 commentaires

0
votes

Créer une classe d'interface comme celle-ci; xxx

dans votre adaptateur initialise votre interface; xxx

ajoutez cette méthode dans votre adaptateur; xxx

Définissez cette boucle dans vos événements de clic; xxx

dans votre activité, implémente votre interface et vous définirez un Méthodes implémentées. Ces méthodes ressemblent à ceci; xxx

Lorsque vous le faites, vous pouvez utiliser votre position sélectionnée dans laquelle vous le souhaitez dans votre activité

J'espère que cette aide!


0 commentaires

1
votes

ici cette solution j'ai créé l'arryliste et mettre la taille de données xxx pré>

et passe à l'adaptateur p> xxx pré>

et sur le bouton sur la touche ". ArrayList et obtenez votre valeur sélectionnée P>

  if(dataSize.size()>0){

        for (int i = 0; i < dataSize.size(); i++) {

            if (dataSize.get(i)==0){
                continue;
            }else {
                ids= ids+String.valueOf(dataSize.get(i))+",";
            }

        }

        Toast.makeText(this, ids, Toast.LENGTH_SHORT).show();

    }


0 commentaires