ListView wiederholte das Verhalten von CheckBox bei jedem 10. Element auffällig

Ich habe eine ListView, die von einem CustomAdapter mit einem bestimmten Layout gefüllt wird.
An ArrayList wird als Parameter an diesen CustomAdapter übergeben, der die Daten für jedes ListView-Element enthält.
Jedes ListView-Element besteht aus einer TextView (in der ich die Daten aus der ArrayList anzeige) und einem Kontrollkästchen rechts daneben.

Die Daten in der ArrayList sind korrekt. Diese Daten werden auch dann korrekt angezeigt, wenn die ListView gefüllt ist und in keinem Element wiederholt wird (Details siehe Bilder unten).

Die Angelegenheit Wenn die ListView gefüllt ist und auf dem Bildschirm angezeigt wird und ich eines der Kontrollkästchen ankreuze, wird unter jedem zehnten Element ein weiteres Kontrollkästchen angekreuzt (Details siehe Bilder unten).

In diesen Bildern können Sie sehen, wenn ich das 1. Element überprüfe, wird auch das 10. Element überprüft. Wenn ich das 2. Element überprüfe, wird auch das 11. Element überprüft !!!
Auch wenn ich das letzte Element überprüfe, wird das 3. Element überprüft.

Warum passiert dieses Verhalten ???

Hier ist der Code für den CustomAdapter ElementContentAdapter.java:

@SuppressWarnings("rawtypes")
public class ElementContentAdapter extends BaseAdapter implements OnClickListener {

private final Activity activity;
private final ArrayList elements;
private static LayoutInflater layoutInflater = null;


public ElementContentAdapter(Activity activity, ArrayList data) {
    this.activity = activity;
    this.elements = data;

    layoutInflater = (LayoutInflater) this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public static class ViewHolder {
    public TextView tviContent;
}

@Override
public int getCount() {
    if (elements.size() <= 0) return 1;
    return elements.size();
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public void onClick(View view) {
    //
}

@SuppressLint("InflateParams")
public View getView(int position, View convertView, ViewGroup parent) {

    final ViewHolder viewHolder;

    if (convertView== null) {
        convertView = layoutInflater.inflate(R.layout.element_content_checklist, null);

        viewHolder = new ViewHolder();
        viewHolder.tviContent = (TextView) convertView.findViewById(R.id.tvi_content_element_content_checklist);

        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }

    if (elements.size() <= 0) {
        /**
         * 
         */
    } else if(elements.size() > 0) {
        ElementContent currentElement = null;
        currentElement = (ElementContent) elements.get(position);

        viewHolder.tviContent.setText(currentElement.getContent());

        convertView.setOnClickListener(new ElementContentOnClickListener(position));
    }

    return convertView;
}

private class ElementContentOnClickListener implements OnClickListener {

    private int selectedPosition;

    ElementContentOnClickListener (int position) {
        selectedPosition = position;
    }

    @Override
    public void onClick(View view) {
        CatMenusActivity catMenusActivity = (CatMenusActivity) activity;
        catMenusActivity.elementoContentOnClick(selectedPosition);
    }

}
}

Hier ist der Code für das aufgeblasene Layout element_content_checklist.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/White"
    android:paddingBottom="10dp"
    android:paddingRight="6dp"
    android:paddingTop="10dp" >

    <TextView
        android:id="@+id/tvi_content_element_content_checklist"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/cbo_mark_element_content_checklist"
        android:gravity="left"
        android:text="@string/txt_content_element_content"
        android:textAllCaps="false"
        android:textColor="@color/DimGray"
        android:textSize="14sp"
        android:textStyle="normal" />

    <CheckBox
        android:id="@+id/cbo_mark_element_content_checklist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:button="@drawable/content_bg_checkbox_content"
        android:checked="false" />

</RelativeLayout>

Die KlasseElementContent ist nur eine benutzerdefinierte Klasse zum Verwalten meiner Informationen, die korrekt aus einer Datenbank abgerufen werden. Es enthält die Attribute:elementId, contentId undcontent, mit seinem jeweiligen Konstruktor, Gettern und Setzern.

Hoffentlich verstehe ich, was gerade passiert und was ich erreichen möchte.

Vielen Dank im Voraus

Antworten auf die Frage(1)

Ihre Antwort auf die Frage