Имеется невидимая группа элементов меню:
<group android:id="@+id/groupBookmarks"
android:visible="false">
<item android:id="@+id/bookmark1"
android:title="@string/rings"
app:showAsAction="never"/>
</group>
Во время выполнения программы, при определенных условиях, делаю группу видимой:
navMenu.setGroupVisible(R.id.groupBookmarks, true);
Но при перезапуске приложения меню инфлейтится заново и возвращается к невидимому состоянию. Знаю про preferences, но не понимаю как этим пользоваться для моих нужд. Как я могу реализовать сохранение видимого состояния меню?
Я бы создал отдельный класс для работы с префами:
public class Preferences {
private final static String VISIBILITY_FLAG = "is_visible";
private SharedPreferences mPreferences;
public Preferences(Context context) {
mPreferences = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
}
public void setVisibilityFlag(boolean isVisible) {
getEditor().putBoolean(VISIBILITY_FLAG, isVisible).commit();
}
public boolean getVisibilityFlag() {
return mPreferences.getBoolean(FLAG, false);
}
private SharedPreferences.Editor getEditor() {
return mPreferences.edit();
}
}
После чего в активити я бы создал переменную, например (если вы знаете что такое MVP или другие архитектурные паттерны то работал бы через презентер)
private boolean isVisible;
private Preferences preferences = new Preferences(context);
И далее при изменении состояния я передавал бы значание isVisible в префы:
preferences.setVisibilityFlag(isVisible);
И соответственно при загрузке приложения получял бы их:
isVisible = preferences.getVisibilityFlag();
Вот здесь можно рассмотреть более подробно https://startandroid.ru/ru/uroki/vse-uroki-spiskom/73-urok-33-hranenie-dannyh-preferences.html
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть несколько карточек, они частично лежат друг на другеКак сделать так чтобы при наведении на карточку она появлялась перед всеми карточками...
Как сделать,что бы мой скрипт ждал новый текст из кнопки и вводил его в поле,а не брал его в цикле
У меня есть ассоциативный массив (объект) selectedData При попытках преобразовать его в JSON вот так: