listview动态标识被点击项并且不出现背景重绘紊乱的解决方法
2015-06-16 10:49
323 查看
private int publicIndex=-1;//记录被点击item的id
viewHolder.layout.setId(position);
if(position/1==0&&publicIndex==-1){
//第一次加载的时候默认选中第一项,如果没有点击其他item,那么publicIndex==-1
viewHolder.lookSign.setBackgroundDrawable(contexts.getResources().getDrawable(R.drawable.notifymsg_signs));
}else{
if(position==publicIndex){
//被点击的item保持被点击的背景色
viewHolder.lookSign.setBackgroundDrawable(contexts.getResources().getDrawable(R.drawable.notifymsg_signs));
}else{
//没有被点击的item改变背景色为白色
viewHolder.lookSign.setBackgroundColor(Color.parseColor("#ff0000"));
}
}
viewHolder.layout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
publicIndex=view.getId();
notifyDataSetChanged();//重点是改变后通知adapter重绘
}
viewHolder.layout.setId(position);
if(position/1==0&&publicIndex==-1){
//第一次加载的时候默认选中第一项,如果没有点击其他item,那么publicIndex==-1
viewHolder.lookSign.setBackgroundDrawable(contexts.getResources().getDrawable(R.drawable.notifymsg_signs));
}else{
if(position==publicIndex){
//被点击的item保持被点击的背景色
viewHolder.lookSign.setBackgroundDrawable(contexts.getResources().getDrawable(R.drawable.notifymsg_signs));
}else{
//没有被点击的item改变背景色为白色
viewHolder.lookSign.setBackgroundColor(Color.parseColor("#ff0000"));
}
}
viewHolder.layout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
publicIndex=view.getId();
notifyDataSetChanged();//重点是改变后通知adapter重绘
}
相关文章推荐
- C# 的三种序列化方法
- C#笔记15:序列化
- 十、反射机制
- jQuery AJAX提交表单并输出返回值
- Vmware vSphere 5.0系列教程之三 vCenter介绍及安装配置
- 扑克牌的结构定义
- 一个丝滑的全屏滑动返回手势
- MySQL数据库常用SQL语句--“表操作”
- linux系统相关命令
- Implement Stack using Queues
- Windows/Linux下引用jar包,并用javac/java编译运行
- iOS通关书单,Android可入
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- OpenSceneGraph控制模型
- ASP.NET缓存处理类实例
- 外键的作用
- 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义。
- 年轻的时候,背后有把刀
- java多线程消息队列的实现
- error splicing file: file too large解决方法