Имеется невидимая группа элементов меню:
<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
Продвижение своими сайтами как стратегия роста и независимости