J'ai CardViews dans une liste ReyclerView. J'ai mis en place de sorte qu'un LongClick sur un CardView lance un DialogFragment. Sur la CardView est une case à cocher et je veux exclure la case à cocher de la méthode LongClick; c'est-à-dire que je ne veux pas que le DialogFragment se charge si la case à cocher est LongClicked. J'ai ajouté 'android: longClickable = "false"' et 'android: focusable = "false"' à la disposition de CardView mais cela n'a pas fonctionné. Comment pourrais-je réaliser?Android: comment exclure une case de CardView d'une méthode LongClick?
Adapter file:
...
public static class ListViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
CardView singleCardView;
TextView cardBlankText1;
TextView cardBlankTextNumstotal;
CheckBox chkSelected;
TextView cardBlankText2;
TextView cardBlankText4;
TextView cardBlankText5A;
TextView cardBlankText5B;
TextView cardBlankText6;
TextView cardBlankText7;
TextView cardBlankText8;
public ListViewHolder(View itemView) {
super(itemView);
itemView.setOnLongClickListener(this);
singleCardView = (CardView) itemView.findViewById(R.id.singlecard_view1);
chkSelected = (CheckBox) itemView.findViewById(R.id.chkSelected);
cardBlankText1 = (TextView) itemView.findViewById(R.id.cardBlankText1);
cardBlankTextNumstotal = (TextView) itemView.findViewById(R.id.cardBlankTextNumstotal);
cardBlankText2 = (TextView) itemView.findViewById(R.id.cardBlankText2);
cardBlankText4 = (TextView) itemView.findViewById(R.id.cardBlankText4);
cardBlankText5A = (TextView) itemView.findViewById(R.id.cardBlankText5A);
cardBlankText5B = (TextView) itemView.findViewById(R.id.cardBlankText5B);
cardBlankText6 = (TextView) itemView.findViewById(R.id.cardBlankText6);
cardBlankText7 = (TextView) itemView.findViewById(R.id.cardBlankText7);
cardBlankText8 = (TextView) itemView.findViewById(R.id.cardBlankText8);
chkSelected.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick (View view){
return true;
}
});
}
@Override
public boolean onLongClick(View view) {
clickListener.onItemLongClick(getAdapterPosition(), view);
return false;
}
}
public void setonItemClickListener(ClickListener clickListener) {
ListAdapter.clickListener = clickListener;
}
public interface ClickListener {
void onItemLongClick(int position, View view);
}
Ok, va essayer. Si je l'ai configuré dans ViewHolder de RecyclerView, Android Studio affiche le message d'erreur "Impossible de résoudre le symbole" conteneur "". S'il vous plaît donnez votre avis. – AJW
'container' était le nom que j'avais donné à la disposition de votre CardView. Si vous êtes dans un adaptateur et que vous configurez ViewHolder, vous pouvez remplacer 'container' par la variable correspondant à la mise en page que vous y déploierez. –
app s'écroule, Studio n'aime pas la ligne "View checkbox ...". Je vais poster le code complet de l'adaptateur ci-dessus, savez-vous ce que je manque? – AJW