В общем такая, задача, у меня есть DialogFramgent
в котором реализованы настройки приложения, и внизу есть кнопки, Отмена
и Применить
. Так вот, если пользователь ничего не изменил в настройках, диалоговое окно закрывается по нажатию на кнопку Отмена
или нажатием на кнопку Назад
на устройсте. Если же он изменил что-либо в настройках, и нажал кнопку Отмена
в конце диалогового окна, то оно закроется, а если он нажмёт кнопку Назад
на устройстве то нужно вызывать новое диалоговое окно с предложением сохранить или не сохранять. Я все реализовал, единственное, я не могу понять, как мне проверить, изменил ли он что-нибудь? Все изменения идут по SharedPreferences
. Я так полагаю, что мне в onBackPressed
нужно сделать условие, что если в SharedPreferences
внесены изменения чтобы вызывался DialogAlert
если же нет, то чтобы просто закрывались настройки. Вопрос лишь в том, какое условие я должен сделать?
Попробуйте так:
На входе в диалог сохраните ваши значения в Map<String,?> map = prefs.getAll();
, затем в нужный момент сравните map.equals(prefs.getAll())
. Есть сомнения, но вроде equals
должен работать как надо.
Как вариант, при вызове DialogFramgent запоминайте сохраненные настройки, а при нажатии на кнопку "назад" сравнивайте текущие настройки с сохраненными. Если что-то не совпадает, то запрашивайте сохранение
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как получать username из формы и выводить измененное значение в отдельную страницу я понялНо мне нужно понять как измененное сервлетом username...
Установил сервер Tomcat после переустановки Windows 7, при запуске Java-приложения через Idea отрывается только дефолтная страница TomcatБуду благодарен...
Мне нужно сделать отображение сайта в приложенииПростого webview обычно хватает полностью, но сейчас на сайте есть возможность войти через...