片段中按返回按钮时如何显示警告消息

时间:2019-05-27 04:40:49

标签: android android-navigation-editor

我希望应用程序在用户按下“后退”按钮时显示警告消息,如果用户选择“是”,它将返回。我在导航图片段中。

我在堆栈溢出中搜索了很多次并尝试过:

@Override
public void onBackPressed() {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    builder.setTitle("Save Or Not");
    builder.setMessage("Do you want to save this? ");
    builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            /*Go back:-I dont know how*/
        }
    });
    builder.setNegativeButton("Discard",null);
    builder.show();
}

但是显示给定错误: 方法不会从其超类覆盖方法

编辑: 我想在导航图片段

中设置onBackPressedListener(手机返回按钮)

3 个答案:

答案 0 :(得分:2)

在使用Fragments 1.1.0(现在处于alpha版本)时,您可以遵循Provide custom back navigation documentation,它显示了如何注册OnBackPressedCallback,这使您可以注册{{1} }片段中的回调:

onBackPressed()

答案 1 :(得分:1)

将此行添加到按钮clicklistner MainActivity.super.onBackPressed();中 替换为MainActivity

的活动名称
 builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
          dialog.dismiss();
          MainActivity.super.onBackPressed();
         //Replace your Activity name insted of MainActivity
        }
    });

答案 2 :(得分:0)

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                   //Replace Your Own Action Like Adding Toast etc and Also SuperOnbackprssed or any overriden method
                    dialog.cancel();

                }
            });