2013-06-13 8 views
0

У меня есть 2 разных адаптера для ListView. Оба адаптера расширяют BaseAdapter. У меня есть 2 кнопки в виде заголовка ListView.Android ListView устанавливает два разных адаптера. ListView не обновляется до нового адаптера, пока я не прокручу его

Кнопка 1 вызов ListView.setAdapter(adapter1); Кнопка 2 вызова ListView.setAdapter(adapter2);

В первый раз я нажимаю либо одной кнопки. Обновление ListView к другому виду адаптера немедленно.

Однако во второй раз я нажимаю любую из кнопок. Слушатель кнопки не будет запускаться, пока я не прокручу ListView.

Я попытался поставить тост внутри прослушивателя кнопок. Тост вызывается только после того, как я прокручу ListView.

У кого-нибудь есть идеи, в чем проблема?

+0

Вам нужно показать больше кода. – Squonk

ответ

0

Пользовательский интерфейс в Android эффективен и будет обновляться только тогда, когда ему НУЖНО. В случае вашего списка пользовательский интерфейс обновляется только при его прокрутке, потому что ему нужно получить больше элементов для списка. Чтобы принудительно выполнить обновление, вам необходимо позвонить invalidate() на ваш ListView.

+0

Я попытался вызвать invalidate(), notifyDataSetChanged() и refreshDrawableState(). Все это не работает. Я думаю, проблема в кнопке onClickListener. Он запускается только после прокрутки вида –

 Смежные вопросы

  • Нет связанных вопросов^_^