When scrolling custom ListView, the checkbox value changes

前端 未结 8 1965
不思量自难忘°
不思量自难忘° 2020-12-05 07:30


What I have: a custom listview with Textviews and checkbox.


Problem: Suppose my screen can show only 6 items of list at time, and
8条回答
  •  醉话见心
    2020-12-05 07:43

    I solved my problem just changing the "setOnCheckedChangeListener" to "setOnClickListener"

    public View getView(final int position, View convertView, ViewGroup parent) {
    
        ViewHolder holder;
    
        if (convertView == null) {
    
            CheckBox cbItemChecklist = new CheckBox(context);
    
            holder = new ViewHolder();
            holder.cbItemChecklist = cbItemChecklist;
    
            convertView = cbItemChecklist;
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
    
        final ItemChecklist itemChecklist = itensChecklist.get(position);
    
        holder.cbItemChecklist.setText(itemChecklist
                .getDescricaoItemChecklist());
        holder.cbItemChecklist.setChecked(itemChecklist.isChecked());
        holder.cbItemChecklist
                .setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        if(itemChecklist.isChecked()){
                            itemChecklist.setChecked(false);
                        } else {
                            itemChecklist.setChecked(true);                         
                        }
    
    
                    }
                });
        return convertView;
    }
    

提交回复
热议问题