J'ai un listview personnalisé et un adaptateur personnalisé. Lorsque je clique sur une ligne de ce listview, le texte d'un TextView devient blanc et l'arrière-plan de cette ligne devient noir.
Tout va bien, mais lorsque l'on clique sur une ligne, la couleur d'arrière-plan des autres lignes devient également noire et le défilement vers le haut et vers le bas est perturbé.
getView() dans l'adaptateur personnalisé
public View getView(final int position, View convertView, ViewGroup parent) {
final ListItem holder;
View vi=convertView;
if(vi==null){
vi = inflater.inflate(R.layout.list, null);
holder = new ListItem();
holder.nametext= (TextView) vi.findViewById(R.id.name);
vi.setTag(holder);
}else{
holder = (ListItem) vi.getTag();
}
holder.nametext.setText(""+item.name);
return vi;
}
En activité principale :
CustomAdapter listadapter = new CustomAdapter(context, R.layout.list, items);
list.setAdapter(listadapter);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg){
TextView v = (TextView) view.findViewById(R.id.name);
view.setBackgroundColor(Color.BLACK);
v.setTextColor(Color.WHITE);
}
});
J'ai essayé de mettre le setOnItemClickListener dans le getView() mais pas de chance non plus
Une aide ? Merci.