2011-07-29 74 views
0

我有一个问题,我自定义listviewcheckbox复选框在列表视图中自动滚动列表。

当我滚动项目时,一些checkbox自动checked没有点击checkbox

任何人都可以帮助我吗?

+1

显示一些代码和XML工作正常。 – Siten

+0

更具体地说,你的adapter.getView的代码... –

回答

0

这意味着,瓯选择一个复选框和Android将随机选择,你应该使用...

if(tempVector.get(position)){ 
      holder.box.setChecked(true); 
     } 
     else{ 
      holder.box.setChecked(false); 
     } 

试试这个,它为我工作。

+0

什么是** tempVector **请澄清一下... –

+0

在我的场景中... for(int i = 0; i Siten

+0

是的家伙。如果另一个用户将面临这个问题,他会看到这个问题,然后他可以得到正确的答案..我希望你能明白.. –

0

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 

     final ViewHolder holder; 
     final Season season = (Season) getGroup(groupPosition); 
     if (convertView == null) { 
      LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = vi.inflate(R.layout.season, parent, false); 
      holder = new ViewHolder(); 
      holder.title = (TextView) convertView.findViewById(R.id.season_title); 
      holder.checkBox = (CheckBox) convertView.findViewById(R.id.season_check_box); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     holder.title.setText(season.getTitle()); 
     holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       season.setChecked(isChecked); 
       adapter.notifyDataSetChanged(); 
      } 
     }); 

     holder.checkBox.setChecked(season.isChecked()); // position is important! Must be before return statement! 
     return convertView; 
    } 

    protected class ViewHolder { 
     protected TextView title; 
     protected CheckBox checkBox; 
    } 
+0

任何需要解释此代码的人都应该关注[Android Google IO 2009 UI性能](http://www.youtube.com/watch?v=N6YdwzAvwOA) – Merlin