Android listview обновляет все элементы - PullRequest
1 голос
/ 21 февраля 2012

У меня есть список с большим списком предметов.Теперь у меня есть общая кнопка «выбрать все», при нажатии которой необходимо выполнить некоторые операции с каждым элементом в списке.Но я не хочу, чтобы пользователь делал прокрутку.Без этого все элементы должны быть выбраны.

В настоящее время я выполняю итерацию с использованием listview.getcount, но это обновление только для текущей группы представлений.

Ответы [ 4 ]

4 голосов
/ 21 февраля 2012

Полагаю, у вас есть пользовательский BaseAdapter и переопределенный метод getView(..), который обновляет каждое представление в соответствии с его состоянием (отмечено / не отмечено).Если это так, то вам просто нужно внести изменения в базовые данные этого ListAdapter (скажем, перебрать массив, в котором хранятся объекты, представленные этим списком, и изменить некоторые свойства каждого объекта), а затем вызвать notifyDataSetChanged() метод.

2 голосов
/ 21 февраля 2012

Что у меня работает:

private void enableAllListItems() {
        for(int i=0;i<mCursorAdapter.getCount();i++)
            mCheckedPositions.set(i, true);
        mListView.invalidateViews();
    }

Часть импорта - это "invalidateViews ()", потому что вы должны сказать ListView, что его базовые данные изменены!

Но на самом деле я использую свой собственный адаптер, поэтому я переопределил метод getView (). Я не уверен, что он будет работать со стандартными адаптерами.

1 голос
/ 21 февраля 2012

Вы повторяете его, используя общий список, который вы используете для заполнения списка. это помогло бы вам.

0 голосов
/ 21 февраля 2012

попробуйте это.

   private void SelectAll() {
    // TODO Auto-generated method stub

    int count = this.mainListView.getAdapter().getCount();

    for (int i = 0; i < count; i++) {

        this.mainListView.setItemChecked(i, true);

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...