Проблема с пользовательским списком и флажками / кнопками - PullRequest
0 голосов
/ 16 августа 2011

У меня проблемы с пользовательским списком и (флажки или кнопки). Я следую руководству (поваренная книга android devolopers), и мой собственный ListView показывает правильно. При прокрутке выбранных флажков произошла видимая ошибка. (Проверены неправильные флажки)

Я следовал руководству по http://www.vogella.de/articles/AndroidListView/article.html#listviews_performance но это не работает Как правильно сохранить состояние?

Поздравительные Andreas

1 Ответ

0 голосов
/ 16 августа 2011

Вам необходимо сохранить отмеченные элементы в переменной списка (в вашем подклассе адаптера) и установить правильное состояние (проверено / не отмечено) в зависимости от того, присутствует ли элемент в переменной списка.

private List<MyItem> mCheckedItems; //In your adapter subclass

Добавить / удалить элемент из переменной списка:

//The AdapterView.OnItemClickListener, is present where you set myListView.setOnItemClickListener(this);
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
{

    MyItem item = myAdapter.getItem(position);
    myAdapter.updateCheckedItems(item);
}

public void updateCheckedItems(MyItem item) //In your adapter subclass
{
        if(!mCheckedItems.contains(item))
        {
            mCheckedItems.add(item);
        }
        else
        {
            mCheckedItems.remove(item);
        }
}

Установить правильное состояние флажка:

public View getView(int position , View view , ViewGroup parent) //In your adapter subclass
{
     final MyItem item = getItem(position);
     CheckBox checkBox = (CheckBox)view.findViewById(R.id.checkBox);
     checkBox.setChecked(mCheckedItems.contains(item));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...