Я новичок в программировании для Android, но не в программировании вообще или Java. Мой вопрос здесь в основном о лучших практиках.
Я создал класс MenuListActivity, который расширяет ListActivity, который показывает элементы меню в списке и запускает другое действие при нажатии. Каждое меню является дочерним классом класса MenuListActivity и реализует метод getMenuItems() для создания пунктов меню.
В моем методе onCreate() я вызываю метод getMenuItems() для создания класса MenuListAdapter, который затем устанавливается в качестве адаптера ListView объекта ListActivity.
Однако иногда я получаю нелегальное исключение StateException, сообщающее мне, что «Содержимое адаптера изменилось, но ListView не получил уведомление». Обратите внимание, что это происходит иногда, не всегда. Переходник ни в какой другой ветке не трогаю, по факту переходник ставится так:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<MenuAdapterItem> menuItems = getMenuItems();
this.setListAdapter(new MenuAdapter(this, menuItems));
}
Еще одна возможность, о которой я могу подумать, - это создать переменную-член адаптера и вызывать notifyDataSetChanged() при каждом обновлении.
Как правильно это сделать? (И, надеюсь, исправить мои сбои ;-)).
С уважением Барт