Mam niestandardowy widok listy i niestandardowy adapter. Po kliknięciu rzędu tego widoku listy tekst w widoku TextView jest ustawiony na biały, a tło tego wiersza jest czarne.setOnItemClickListener w ListView wpływające na wiele wierszy
Wszystko jest dobrze, ale po kliknięciu wiersza inne wiersze mają również kolor tła ustawiony na Czarny, a podczas przewijania w górę iw dół wszystko będzie zepsuć.
getView() w niestandardowych adaptera
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;
}
W główną działalność:
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);
}
});
Próbowałem puttin się setOnItemClickListener w getView(), ale bez powodzenia obu ..
Każda pomoc? dzięki.
To zadziałało dla mnie bardzo dziękuję – ralph
@Chris: 'vi.setOnClickListener' lub' vi.setOnItemItClickListener'? –
@ LuisA.Florit vi.setOnItemClickListener oczywiście :) – creativecreatorormaybenot