在很多需求中,当我们点击列表时,需要给定其默认颜色,其他未选中的变为另一种颜色,用来区分哪条选中哪条未选中。下面来介绍两种实现的方法
第一种方法:通过调用适配器修改选中项
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.changeState(position);
}
});
适配器里的方法:
private int selectorPosition = -1;//默认全部为透明色
public void changeState(int pos) {
selectorPosition = pos;
notifyDataSetChanged();
}
第二种方法:
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
for(int i=0;i<parent.getCount();i++){
View v=parent.getChildAt(i);
if(position==i){//当前选中的Item的背景颜色
view.setBackgroundColor(Color.parseColor("#ff0000"));
}else{
v.setBackgroundColor(Color.parseColor("#00000000"));
}
}
}
});
第一种方式相对高效一些
项目地址为:http://download.youkuaiyun.com/detail/shihuiyun/9856172 ,需要的可以下载