Android, Kontrollkästchen in der erweiterbaren Liste nach dem Zufallsprinzip aktiviert / deaktiviert

VerwendenBeispielcode für dieses Kontrollkästchen mit erweiterbarer Liste Als Basis versuche ich, den Status des Kontrollkästchens zu speichern und beizubehalten. Es werden jedoch zufällige Kontrollkästchen aktiviert und deaktiviert (Auslösen von myOnCheckedChangeListener mit den neuen Werten), wenn ich sie außer Sichtweite rolle, minimiere ihre Gruppe oder minimiere / maximiere sogar eine nahegelegene Gruppe!

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;
}

Ich weiß nicht, welcher Code dafür verantwortlich sein könnte, daher sind alle Vorschläge, was hier aufgenommen werden soll, willkommen. Mein Code unterscheidet sich nur vom Original, wenn ich versuche, die Werte zu speichern.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage