首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

项目中遇到的一个有关问题-checkbox

2012-07-24 
项目中遇到的一个问题-checkbox?模拟下在项目中出现的问题?1选中3个??2往下滑动?3网上滑动后,刚才勾

项目中遇到的一个问题-checkbox


?模拟下在项目中出现的问题


?<1>选中3个

项目中遇到的一个有关问题-checkbox
?
?
<2>往下滑动
项目中遇到的一个有关问题-checkbox
?<3>网上滑动后,刚才勾选的消失了
项目中遇到的一个有关问题-checkbox
?

当时项目的解决方法设一个MAP用于存方 是否勾选的boolean值。checkbox是图片做得在设配器里增加一个全局的map????????????
public Map<Integer, Boolean> isSelected=new HashMap<Integer, Boolean>();捕获事件处理,屏蔽了checkbox的事件:lv.setOnItemClickListener(new OnItemClickListener(){                              @Override                              public void onItemClick(AdapterView<?> parent, View view,                              int position, long id) {                              cb=(CheckBox) view.findViewById(R.id.cb);                              //切换图片状态,选中或者没选中                              cb.toggle();                              //将状态存到map里保存                              adapter.isSelected.put(position, cb.isChecked());                        }});在适配器的处理的方式            :if(isSelected!=null&&isSelected.get(position)!=null){                             holder.cb.setChecked(isSelected.get(position));                             }
?改后效果<1>
项目中遇到的一个有关问题-checkbox
?
<2>下拉后,会发现第二页有3项莫名的被选了
项目中遇到的一个有关问题-checkbox
?<3>拉回去,0,1,2依旧被勾选了的
项目中遇到的一个有关问题-checkbox
?
问题解决了,但是出现了个新的问题,当你勾选了1,2,3,当你向后滚动发现另一个view也莫名奇妙的勾选了
解决方式:
第一种方式
      public View getView(final int position, View convertView, ViewGroup parent) {            // 去掉下面那句,但是以后就每次会生成新的convertView            //if(convertView==null)            convertView=inflater.inflate(R.layout.a,null);
?第二种方式?????????
  boolean flag=false;            holder.cb.setChecked(flag);            if(isSelected!=null&&isSelected.get(position)!=null){                  holder.cb.setChecked(isSelected.get(position));            }
?

?


?

热点排行