CheckBox меняет значение дважды

У меня андроидListView чьи предметы имеют флажок.

Флажок установлен по умолчанию. Если флажок снят, его следует удалить из списка.

Проблема в том, чтоonCheckedChanged срабатывает дважды: когда я нажимаю на флажок, чтобы снять его (сisChecked false) и после того, как я удалю элементisChecked true).

Это соответствующий код моего ArrayAdapter:

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

Что я делаю неправильно?

Ответы на вопрос(3)

Ваш ответ на вопрос