【发布时间】:2017-09-19 07:25:50
【问题描述】:
我有用户可以更改的带有 EditTexts 的片段。
我在工具栏上也有后退按钮(还有物理后退按钮)
当用户回击时,我会检查数据是否已更改以及是否已更改 - 我需要打开对话框并询问用户“您要保存更改吗?”。获得点击并采取相应行动(肯定或否定答案)。
保存数据的最佳位置(也许我错了)是在这个片段的 onPause 中。
问题出在对话框上——它不是模态的,当它显示问题并等待用户反应时——它下面的片段消失了,之前的片段从堆栈中返回。 我需要用对话框“暂停 onPause”,直到用户做出选择。最简单(或最正确)的方法是什么?
@Override
public void onPause() {
if (!(text.getText().toString().equals(user.getName())))
{
new MaterialDialog.Builder(getActivity())
.title("Save changes?")
.content("You changed you personal details, save changes?")
.cancelable(false)
.positiveText("Save")
.negativeText("Discard")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
save();
}})
.show();
}
super.onPause();
}
如果我想在 onPause 之前执行此操作 - 我需要抓住工具栏的后退按钮和物理后退按钮 - 似乎工作量太大。寻找优雅的方式。
谢谢
【问题讨论】:
标签: android dialog modal-dialog lifecycle onpause