Android, флажки случайно отмечены / не отмечены в расширяемом списке

С помощьюэтот пример кода флажка Расширяемый список в качестве базового уровня я пытаюсь сохранить и сохранить состояние флажка. Тем не менее, случайные флажки проверяются и сняты (вызывает мойOnCheckedChangeListener с новыми значениями), когда я прокручиваю их вне поля зрения, минимизирую их группу или даже минимизирую / максимизирую соседнюю группу!

public Object getChild(int groupPosition, int childPosition) {
    return colors.get( groupPosition ).get( childPosition );
}

public long getChildId(int groupPosition, int childPosition) {
    return (long)( groupPosition*1024+childPosition );  // Max 1024 children per group
}

public View getChildView(final int groupPosition, final int childPosition, 
        boolean isLastChild, View convertView, ViewGroup parent) {

    View v = null;
    if( convertView != null ) {
        v = convertView;
    } else {
        v = inflater.inflate(R.layout.child_row, parent, false); 
    }

    Color c = (Color)getChild( groupPosition, childPosition );

    TextView color = (TextView)v.findViewById( R.id.childname );
    if( color != null ) {
        color.setText( c.getColor() );
    }

    TextView rgb = (TextView)v.findViewById( R.id.rgb );
    if( rgb != null ) {
        rgb.setText( c.getRgb() );
    }

    CheckBox cb = (CheckBox)v.findViewById( R.id.check1 );
    cb.setChecked( c.getState() );
    cb.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            colors.get(groupPosition).get(childPosition).setState(isChecked);
            context.setColorBool(groupPosition, childPosition, isChecked);
            Log.d("ElistCBox2", "listitem position: " +groupPosition+"/"+childPosition+" "+isChecked);
        }
    });

    return v;
}

Я не знаю, какой фрагмент кода может быть ответственным за это, поэтому любые предложения о том, что сюда включить, приветствуются. Мой код отличается от оригинала только в моей попытке сохранить значения.

Ответы на вопрос(2)

Ваш ответ на вопрос