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
, вероятно, не требуется; это кажется немного более полным.