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:
Viene selezionato anche l'ultimo elemento:
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 № 1Stai 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.