checkboxes en la Lista se verifican / desmarcan aleatoriamente cuando me desplazo. Android 2.3

Estoy usando mi adaptador personalizado. Hay una casilla de verificación y una vista de texto en cada fila. Pero tengo un problema. Hay más elementos en la lista que el número que cabe en la pantalla.

Entonces, cuando marque cualquiera de las casillas de verificación en la pantalla y me desplazo hacia abajo. El automáticamente se desmarca.

Cuando me desplazo hacia arriba, se marcan algunas casillas de verificación aleatorias.

Sé que en la lista getView () se actualiza una y otra vez y hay un problema con la posición. Pero no sé la solución.

He intentado usar una matriz booleana para mantener una pista. pero no sé cómo hacerlo correctamente.

cb.setOnCheckedChangeListener(new OnCheckedChangeListener(){
                        @Override
                        public void onCheckedChanged(CompoundButton buttonView,
                                boolean isChecked) {

                                itemChecked[index]=isChecked;
                        }
                    });
                    cb.setChecked(itemChecked[index]);

¿Puede publicar algún fragmento de código y explicarlo en detalle? Estoy cansado de buscar esto desde las últimas 2 semanas ... gracias de antemano, ..

Respuestas a la pregunta(2)

Su respuesta a la pregunta