一般来说,这样的任务,我DialogFramgent
在其中实现了应用程序设置,底部有按钮,Отмена
和Применить
。Отмена
因此,如果用户没有更改设置中的任何内容,则通过单击按钮或单击设备上的按钮关闭对话框Назад
。如果他更改了设置中的某些内容,并按下了Отмена
对话框末尾的按钮,那么它将关闭,如果他按下Назад
设备上的按钮,那么您需要调用一个新的对话框并建议保存或不保存。我已经实现了一切,唯一我不知道的是如何检查它是否改变了任何东西?所有更改都转到SharedPreferences
. 我相信我onBackPressed
需要提出一个条件,即如果SharedPreferences
为了被调用而进行了更改DialogAlert
如果没有,那么只需关闭设置。唯一的问题是,我应该提出什么条件?
或者,在调用 DialogFramgent 时,记住保存的设置,当您单击“返回”按钮时,将当前设置与保存的设置进行比较。如果某些内容不匹配,则请求保存
试试这样:
当您进入对话框时,将您的值存储在 中
Map<String,?> map = prefs.getAll();
,然后在正确的时间进行比较map.equals(prefs.getAll())
。有疑问,但它似乎equals
可以正常工作。