/ / RecyclerView Il primo e l'ultimo elemento vengono modificati facendo clic su uno solo: Android, Android-Recyclerview

RecyclerView primo e ultimo elemento sono cambiati, quando si fa clic solo uno - Android, androide-recyclerview

Sto usando un recyclerview per visualizzare un elenco di interessi tra cui scegliere. Facendo clic sul primo elemento, viene selezionato anche l'ultimo

Selezione del primo oggetto:

Recycler Visualizza il primo oggetto selezionato

Viene selezionato anche l'ultimo elemento:

Recycler Visualizza l'ultimo elemento selezionato

La selezione viene effettuata con questo codice:

@Override
public InterestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.interests_textview, parent, false);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView textView = (TextView) v;
if (textView.getCompoundDrawables()[2] == null) {
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);
} else {
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
}
}
});
return new InterestViewHolder(v);
}

Inoltre, viene selezionato anche il primo elemento, quando si fa clic sull'ultimo elemento. Chissà cosa potrebbe causare questo?

risposte:

1 per risposta № 1

Stai gonfiando un layout in a TextView. Cambiarlo in View v e dovrebbe funzionare:

View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.interests_textview, parent, false);

Inoltre è necessario utilizzare findViewByID() al fine di ottenere il corretto TextView dal tuo layout:

Invece di

TextView textView = (TextView) v;

Fai questo:

TextView textView = findViewById(<id of your textview in the layout>);

Lanciare il View a a TextView non è quello che vuoi fare.