Android - отключить элемент списка Listview и снова включить его

Итак, у меня есть следующий код в адаптере:

@Override
    public boolean isEnabled(int position) 
    {
         GeneralItem item = super.getItem(position);
         boolean retVal = true;


            if (item != null)
            {
                if (currSection != some_condition)
                retVal = !(item.shouldBeDisabled());
            }
         return retVal;
     }


    public boolean areAllItemsEnabled() 
    {
        return false;
    }

Вопрос здесь: Итак, если я отключил свой элемент во время первоначальной привязки, теперь я поднимаю событие на экране и должен активировать их независимо от того, что. Повторяю ли я все это после выполнения этого действия?

например:

onCreate{

// create and bind to adapter
// this will disable items at certain positions 

}

onSomeClick{

I need the same listview with same items available for click no matter what the conditions of positions are, so I need them all enabled. What actions should I call on the adapter? 

}

Проблема в том, что у меня тоже может быть очень длинный список. Он предполагает поддерживать 6000 предметов. Поэтому переупорядочить его, конечно, не вариант.

Спасибо,

Ответы

Ответ 1

Как насчет наличия переменной-экземпляра на вашем адаптере:

boolean ignoreDisabled = false;

Тогда в areAllItemsEnabled:

public boolean areAllItemsEnabled() {
    return ignoreDisabled;
}

а затем в начале isEnabled:

public boolean isEnabled(int position) {
    if (areAllItemsEnabled()) {
        return true;
    }
     ... rest of your current isEnabled method ...
}

Затем вы можете переключаться между двумя режимами, установив ignoreDisabled соответствующим образом и вызывая invalidate на вашем ListView.

Обратите внимание, что добавление к isEnabled, вероятно, не требуется; это кажется немного более полным.