我有一個自定義列表視圖和一個自定義適配器。 單擊此列表視圖的一行時,TextView的文本將設置爲白色,並且此行的背景設置爲黑色。ListView中的setOnItemClickListener影響多行
一切都很好,但是當單擊一行時,其他行的背景顏色也設置爲黑色,並且上下滾動時都會混亂起來。
getView()的自定義適配器
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;
}
在mainactivity:
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);
}
});
我試圖puttin的setOnItemClickListener在getView(),但沒有運氣要麼..
有什麼幫助嗎?謝謝。
這對我工作多虧 – ralph
@Chris:'vi.setOnClickListener'或'vi.setOnItemClickListener'? –
@ LuisA.Florit當然是vi.setOnItemClickListener :) – creativecreatorormaybenot