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