Android:按下“后退”按钮时提示用户保存更改
我有一个包含多个用户可编辑项目(EditText字段,RatingBar等)的活动。我想提示用户是否按下了后退/主页按钮,并且进行了尚未保存的更改。在通读了Android文档之后,似乎这段代码应该放在onPause方法中。我尝试过将AlertDialog放在onPause中,但是对话框会显示出来,然后立即拆除,因为没有任何东西可以阻止暂停完成。
这是我到目前为止想到的:
@Override
protected void onPause() {
super.onPause();
AlertDialog ad = new AlertDialog.Builder(this).setMessage(
R.string.rating_exit_message).setTitle(
R.string.rating_exit_title).setCancelable(false)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// User selects OK, save changes to db
}
}).setNeutralButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
// User selects Cancel, discard all changes
}
}).show();
}
我是否在正确的轨道上,或者是否有另一种方法可以完成我在这里想要做的事情?任何帮助都会很棒!