как установить «кнопку возврата», закрытие активностей кроме основной активности в андроиде? - PullRequest
0 голосов
/ 13 декабря 2018

прежде всего извините за мой английский.Я новичок на Android и работаю над приложением.мое приложение имеет 8 действий, и они обычно начинаются с нажатия и вот так, активность 1-> 2-> 3-> 4-> 5-> 6-> 7-> активность8.
как обычно, когда я нажимаю кнопку возврата7 раз, и это закрывает действия act8 к act1.если я нахожусь на activty1, кнопка «назад» закрывает приложение.я хочу сделать алердиолога, чтобы предупредить меня, как «это ваша последняя деятельность !!».но когда я использую команду public void onBackPressed () , чтобы показать диолог, такой как "Вы уверены, что выход?", это не только предотвращает закрытие приложения, это также предотвращает закрытие других активностей, например, если я нахожусь на 8-м действии, я не могу вернуться к 7-му действию, приложение показывает мне диалоговое окно с предупреждением "Вы уверены, что выходите?"

, чтобы подвести итог;
- куда я должен поместить код public void onBackPressed () , если я хочу запретить только закрытие приложения, кроме активаций?
- могу ли я использоватькод, подобный этому, если (myactivity является последним или основным действием) {"обязательно выйти из приложения?"}

Еще раз извините за язык, спасибо за ваш интерес.

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Вы должны сохранить onBackPressed() в том виде, в каком вы находитесь в действиях 2 до 8 и в задании 1 переопределить onBackPressed(), как показано ниже.

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
           .setMessage("Are you sure you want to exit?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   finish();
               }
           })
           .setNegativeButton("No", null)
           .show();
}
0 голосов
/ 13 декабря 2018

Если вы не заканчиваете свое первое действие, когда вы регистрируете новое действие, это решение работает.В последнем активе onBackpress () напишите следующее

@Override
    public void onBackPressed() {
        //show your alert here and in alert's conform you should call finish()
    }
0 голосов
/ 13 декабря 2018

Вот ваш ответ, попробуйте таким образом.Для вашего первого метода Activity onBackPressed() напишите код ниже.

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
           .setMessage("Are you sure you want to exit?")
           .setCancelable(false)
           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   NumberOne.super.onBackPressed();
               }
           })
           .setNegativeButton("No", null)
           .show();
}

Для других действий используйте код ниже.

    @Override
    public void onBackPressed() {
        finish();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...