CheckBox ändert den Wert zweimal

Ich habe ein AndroidListView Wessen Artikel haben ein Kontrollkästchen.

Das Kontrollkästchen ist standardmäßig aktiviert. Sobald das Kontrollkästchen deaktiviert ist, sollte es aus der Liste entfernt werden.

Das Problem ist, dassonCheckedChanged wird zweimal ausgelöst: Wenn ich auf das Kontrollkästchen tippe, um es zu deaktivieren (mitisChecked false) und nachdem ich den Gegenstand entfernt habe (mitisChecked true).

Dies ist der relevante Code meines ArrayAdapters:

public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.item, parent, false);
        holder = new ViewHolder();
        holder.check = (CheckBox) convertView.findViewById(R.id.check);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    final Object item = this.getItem(position);
    holder.check.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (!isChecked) {
                remove(item); // This somehow calls onCheckedChanged again
            }
        }
    });
    return convertView;
}

Was mache ich falsch

Antworten auf die Frage(6)

Ihre Antwort auf die Frage