您的位置:首页 > 其它

改变选中的ListView Item数据颜色直到选中下一个

2016-02-16 12:08 417 查看
在适配器中添加

private SparseBooleanArray selected;
boolean isSingle = true;
private int old = -1;


在构造方法中实例化

selected = new SparseBooleanArray();


添加方法

public void setSelectedItem(int selected){
if(isSingle = true && old != -1){
this.selected.put(old, false);
}
this.selected.put(selected, true);
old = selected;
}


在getView()中

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.horizontal_list_item, null);
holder.mTitle=(TextView)convertView.findViewById(R.id.text_list_item);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}
/*if(position == selectIndex){
convertView.setSelected(true);
}else{
convertView.setSelected(false);
}*/

if(selected.get(position)){//做判断
//convertView.setBackgroundResource(R.color.orange);
holder.mTitle.setTextColor(convertView.getResources().getColor(R.color.orange));
}else{
//convertView.setBackgroundResource(R.color.wi);
holder.mTitle.setTextColor(convertView.getResources().getColor(R.color.black));
}
holder.mTitle.setText(mTitles[position]);

return convertView;
}


最后在ListView的监听器中加入

adapter.setSelectedItem(position);
adapter.notifyDataSetChanged();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: