Обновить список просматриваемых ящиков

Мое приложение реализует ящик навигации для изменения фрагментов. Теперь мне нужно обновить элементы ящика навигации, если пользователь зарегистрировался в

Например: зарегистрированные элементы навигации выглядят следующим образом

Главная Моя информация Выход

отключаемые элементы навигации выглядят следующим образом

Главная регистр Войти

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

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

У меня такой рабочий процесс, но ящик навигации только обновляется, когда я вхожу в систему, а затем полностью закрываю приложение, а затем снова запускаю его.

Ответ 1

Ваша активность должна быть в курсе вашего списка ListView. Поэтому, когда вы входите в систему, вам просто нужно сообщить своей активности, чтобы сообщить вашему ListView, что данные были изменены, или полностью перезагрузить его.

В вашем фрагменте (или где бы вы ни находились):

public void logIn() {
    ...
    ((DrawerActivity) getActivity()).updateDrawer();
}

В вашем DrawerActivity:

public void updateDrawer() {
    mListViewAdapter.notifyDataSetChanged();
    // OR
    mListView.setAdapter(new AdapterShowingTheRightTitles());
}