Условие на изменение переменных в SharedPreferences

181
10 мая 2018, 08:57

В общем такая, задача, у меня есть DialogFramgent в котором реализованы настройки приложения, и внизу есть кнопки, Отмена и Применить. Так вот, если пользователь ничего не изменил в настройках, диалоговое окно закрывается по нажатию на кнопку Отмена или нажатием на кнопку Назад на устройсте. Если же он изменил что-либо в настройках, и нажал кнопку Отмена в конце диалогового окна, то оно закроется, а если он нажмёт кнопку Назад на устройстве то нужно вызывать новое диалоговое окно с предложением сохранить или не сохранять. Я все реализовал, единственное, я не могу понять, как мне проверить, изменил ли он что-нибудь? Все изменения идут по SharedPreferences. Я так полагаю, что мне в onBackPressed нужно сделать условие, что если в SharedPreferences внесены изменения чтобы вызывался DialogAlert если же нет, то чтобы просто закрывались настройки. Вопрос лишь в том, какое условие я должен сделать?

Answer 1

Попробуйте так:

На входе в диалог сохраните ваши значения в Map<String,?> map = prefs.getAll();, затем в нужный момент сравните map.equals(prefs.getAll()). Есть сомнения, но вроде equals должен работать как надо.

Answer 2

Как вариант, при вызове DialogFramgent запоминайте сохраненные настройки, а при нажатии на кнопку "назад" сравнивайте текущие настройки с сохраненными. Если что-то не совпадает, то запрашивайте сохранение

READ ALSO
Горячие клавиши в Android studio

Горячие клавиши в Android studio

Как перейти в родительский класс с помощью горячих клавиш?

178
Как передать значение в поле html через Servlet?

Как передать значение в поле html через Servlet?

Как получать username из формы и выводить измененное значение в отдельную страницу я понялНо мне нужно понять как измененное сервлетом username...

210
Настройка Tomcat Java

Настройка Tomcat Java

Установил сервер Tomcat после переустановки Windows 7, при запуске Java-приложения через Idea отрывается только дефолтная страница TomcatБуду благодарен...

184
Android webview вкладки

Android webview вкладки

Мне нужно сделать отображение сайта в приложенииПростого webview обычно хватает полностью, но сейчас на сайте есть возможность войти через...

218