This is the project Sto tentando di eseguire. Qui è il mio codice per l'onBindViewHolder dalla classe RecyclerView.AdapterRecyclerView ambiguos setVisibility function, facendo clic su una vista interessa più viste
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
TextView title = (TextView) holder.view.findViewById(R.id.title);
final TextView desc = (TextView) holder.view.findViewById(R.id.desc);
final ImageView imageView = (ImageView) holder.view.findViewById(R.id.imageView);
title.setText(pojos.get(position).getTitle());
desc.setText(pojos.get(position).getDesc());
imageView.setImageResource(pojos.get(position).getImage());
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
desc.setText("clicked");
desc.setBackgroundColor(Color.BLUE);
imageView.setImageResource(R.drawable.heart_red);
}
});
}
L'elenco carichi bene, il problema si verifica quando onclicklistener del ImageView si chiama.
desc.setText("clicked");
La riga in alto consente di modificare la voce di elenco su cui è stato fatto clic. ma
desc.setBackgroundColor(Color.BLUE);
quando questa riga viene eseguita, la modifica si riflette in più elementi nell'elenco. Cosa sta andando storto? Nelle immagini mostrate di seguito, ho fatto clic sull'elemento 0, il testo cambia in "clic" e il colore è impostato. Ma quando scorro verso il basso, l'elemento 12 è stato anch'esso influenzato dal mio clic sull'elemento 0. Solo il cambiamento del colore di sfondo ha riflesso, non il cambio di testo. Come lo fermo?
Ho cercato di risolvere questo per un lungo periodo di tempo, gentilmente scaricare il progetto e provare a eseguire il codice per capire cosa esattamente dire, se la mia domanda non è chiara.
Capisco la vostra soluzione. Ma perché setText e setBackgroundColor funzionano in modo diverso? perché il setText funziona esattamente come lo vogliamo fuori dagli schemi? – 55597
Non funziona dinamicamente, sry :) – delive
Amen a quello! Grazie per l'ottima spiegazione :) – Cbr