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);
}
}
});
4 Réponses :
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);
}
}
});
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)
Maintenant, vous devez déclarer une liste pour contenir ces identifiants sélectionnés ce que vous pouvez faire est de déclarer un 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 p> espère que cela aide. p> p> isselected code> booléen dans votre modèle. Dans Onbindviewholder Code> Méthode, définissez la visibilité sous la forme p>
Créer une classe d'interface comme celle-ci; dans votre adaptateur initialise votre interface; p> ajoutez cette méthode dans votre adaptateur; p> Définissez cette boucle dans vos événements de clic; p> dans votre activité, implémente votre interface et vous définirez un Méthodes implémentées. Ces méthodes ressemblent à ceci; p> Lorsque vous le faites, vous pouvez utiliser votre position sélectionnée dans laquelle vous le souhaitez dans votre activité P> J'espère que cette aide! p> p>
ici cette solution j'ai créé l'arryliste et mettre la taille de données et passe à l'adaptateur p> 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();
}
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?