Имеется checkbox в item menu, не получается сохранять его позицию(чекнут или не чекнут).
Пробую сохранять значение таким кодом:
case R.id.menuHideShowTime:
if(item.isChecked()){
item.setChecked(false);
}else{
adapter.toggleStateTime(); //вывод значения
item.setChecked(true);
}
SharedPreferences settings = getSharedPreferences("menuHideShowTime", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("menuHideShowTime",item.isChecked());
editor.commit();
break;
Но, не получается, при смене активности и переходе в него братно - значение чекбокса не чекнуто
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.message_menu, menu);
MenuItem item = menu.findItem(R.id.menuHideShowTime);
SharedPreferences settings = getPreferences(MODE_PRIVATE);
item.setChecked(settings.getBoolean("menuHideShowTime", false));
return super.onCreateOptionsMenu(menu);
}
Проблема в том, что сохраняете вы значение в SharedPreferences, а пытаетесь выгрузить из Prefereces. Это не одно и то же. Preferences сохраняют данные в специально отведенный для этого файл, SharedPreferences же используют тот файл, который укажете вы. Для решения проблемы нужно выбрать один из объектов и использовать только его.
Когда вы пишите
SharedPreferences settings = getSharedPreferences("menuHideShowTime", 0);
Создаётся файл с именем "menuHideShowTime". Этот метод используется, когда нужно использовать несколько разных файлов для сохранения данных.
Когда пишите так:
SharedPreferences settings = getPreferences(MODE_PRIVATE);
Данные записываются в один общий файл.
Вам нужно писать одинаково для одних и тех же данных. Иначе не получиться их найти.
Кстати, значение MODE_PRIVATE равно 0. Можно указывать и то, и то.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники