This is the project Ich versuche zu laufen. Hier ist mein Code für die onBindViewHolder von RecyclerView.Adapter KlasseRecyclerView Ambiguos setVisibility Funktion, klicken auf eine Ansicht wirkt sich auf mehrere Ansichten
@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);
}
});
}
Die Liste lädt in Ordnung, das Problem tritt auf, wenn die OnClickListener des Imageview genannt wird.
desc.setText("clicked");
In der obigen Zeile wird die Änderung in dem Listenelement vorgenommen, auf das geklickt wurde. aber
Wenn diese Zeile ausgeführt wird, spiegelt sich die Änderung in mehreren Elementen in der Liste wider. Was läuft falsch? In den unten gezeigten Bildern habe ich auf Punkt 0 geklickt, der Text ändert sich auf "geklickt" und die Farbe wird gesetzt. Aber wenn ich nach unten scrolle, ist auch Punkt 12 von meinem Klick auf Punkt 0 betroffen. Nur die Hintergrundfarbe hat sich geändert, nicht die Textänderung. Wie höre ich damit auf?
Ich habe versucht, dies für eine lange Zeit zu lösen, bitte das Projekt herunterzuladen und zu versuchen, die Ausführung von Code zu verstehen, was ich genau meine, wenn meine Frage nicht klar ist.
Ich verstehe Ihre Lösung zu lösen. Aber warum funktionieren setText und setBackgroundColor anders? Warum funktioniert der setText genau so, wie wir es wollen? – 55597
Not dinamically, sry :) – delive
Amen dazu! Danke für die tolle Erklärung :) – Cbr