Как установить опцию «Назад» для навигации и текущей активности - PullRequest
0 голосов
/ 04 мая 2020

У меня есть созданное приложение с представлением «Список», когда я нажимаю кнопку «Назад» на домашней странице, оно выводит сообщение и просит выйти или нет. после того, как я внедрил ящик навигации и установил открытие и закрытие. но когда я нажимаю кнопку "Назад" из навигации go назад и выскакиваю тост, который я установил на странице мотыги.

@Override
public void onBackPressed() {

    if (drawerLayout.isDrawerOpen(GravityCompat.START)){
        drawerLayout.closeDrawer(GravityCompat.START);
    }else{
        super.onBackPressed();
    }

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure you want to Exit?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                    AdminHome.super.onBackPressed();
                }
            })

            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });

    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

как остановить сообщение тоста, когда я щелкаю обратно с панели навигации и устанавливаю тост из дома стр.

Ответы [ 3 ]

0 голосов
/ 04 мая 2020

привет Вы можете изменить свой код следующим образом

@Override
public void onBackPressed() {

if (drawerLayout.isDrawerOpen(GravityCompat.START)){
    drawerLayout.closeDrawer(GravityCompat.START);
}else{
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to Exit?")
        .setCancelable(false)
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
                AdminHome.super.onBackPressed();
            }
        })

        .setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });

AlertDialog alertDialog = builder.create();
alertDialog.show();
}

}

0 голосов
/ 04 мая 2020

Поместите свой алертдиалог в else вашего состояния

@Override
public void onBackPressed() {

    if (drawerLayout.isDrawerOpen(GravityCompat.START)){
        drawerLayout.closeDrawer(GravityCompat.START);
    }else{
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("Are you sure you want to Exit?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    super.onBackPressed();
                }
            })

            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });

           AlertDialog alertDialog = builder.create();
           alertDialog.show();
    }

}
0 голосов
/ 04 мая 2020

Поместите код AlertDialog в блок else.

...