确认退出对话框退出而不确认

时间:2013-07-01 08:18:06

标签: android android-alertdialog

我正在尝试退出应用的活动时保存数据。

@Override
public void onBackPressed() {

super.onBackPressed();
if(loadInboxPreferencesCurrent()==false){
    showAlertUserDialogInbox();
}

}

public void showAlertUserDialogInbox() {

    AlertDialog.Builder builderMiniAlert = new AlertDialog.Builder(this);
    builderMiniAlert.setMessage("Do you want to exit without saving your App. Inbox Settings..\n\nDo you want to Save now. ?")
               .setCancelable(false); // disallow user to hit the 'back' button

    builderMiniAlert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface arg0, int arg1) {
            //Save settings here
            onBackPresedNSave();

        }
    });
    builderMiniAlert.setNegativeButton("No", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface arg0, int arg1) {
        Toast.makeText(getApplicationContext(), "To set your App. Inbox Settings later, press menu key and select Save Inbox Settings.", Toast.LENGTH_LONG).show();
            arg0.dismiss();
        }
    });
    builderMiniAlert.setTitle("Ultimate Sms Inbox Alert...");

    builderMiniAlert.show();

}
  

现在真正的问题是在按下后退按钮后,对话框会显示一秒钟,并且在没有用户点击是/否按钮的情况下消失。

1 个答案:

答案 0 :(得分:0)

删除

中的 super.onBackPressed
@Override
public void onBackPressed() {

    super.onBackPressed(); //remove this because this will close the activity
    if(loadInboxPreferencesCurrent()==false){
         showAlertUserDialogInbox();
    }

}

并确保您在对话框中单击正/负按钮后处理其他地方的活动。

我不确定你想要做的是保存数据的最佳方法。

您应该查看活动的onSaveInstanceState(),但如果您的目的是仅在用户确认之后保存,那么您的第一种方法就可以了。