Почему этот диалог оповещения не отображается на backPressed? - PullRequest
0 голосов
/ 12 ноября 2019

Вот мой метод onBackPressed ():

@Override
public void onBackPressed() {
        final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainScreen.this);
        String checkInVal = preferences.getString("checkIn", "");
        if (!PRE_USER_ACTIVE.equalsIgnoreCase("1")) {
            super.onBackPressed();
            finish();

        } else if (MainScreen.this.getSupportFragmentManager().findFragmentByTag("VOLUNTEERDETAILS") != null && checkInVal.equals("yes")) {
            popFragment();
        } else {
            if (Functions.iNumberOfLoadedFragments == 0) {
                String exitLog = "Exit Application", ok = "OK", cancel = "CANCEL";
                String sureLog = "Are you sure you want to exit  " + MainScreen.this.getResources().getString(R.string.app_name);
                if (EasyPreference.with(MainScreen.this, PRE_KEY)
                        .getString(PRE_USER_LANGUAGE, PRE_LANGUAGE_ENGLISH).equalsIgnoreCase(PRE_LANGUAGE_ASSEMESS)) {

                    exitLog = "প্ৰস্থান কৰক অ্যাপ্লিকেশন";
                    sureLog = "আপুনি Our SchoolZoneৰ পৰা প্ৰস্থান কৰিবলৈ নিশ্চিতনে";
                    ok = "স্বীকাৰ কৰক";
                    cancel = "বাতিল কৰক";
                } else if (EasyPreference.with(MainScreen.this, PRE_KEY)
                        .getString(PRE_USER_LANGUAGE, PRE_LANGUAGE_ENGLISH).equalsIgnoreCase(PRE_LANGUAGE_THI)) {

                    exitLog = "ออกจากแอพพลิเคชัน";
                    sureLog = "คุณแน่ใจหรือว่าต้องการออกจาก Our SchoolZone";
                    ok = "ตกลง";
                    cancel = "ยกเลิก";
                }
                new LovelyStandardDialog(MainScreen.this)
                        .setTopColor(Functions.getBackColor())
                        .setIcon(R.drawable.ic_info_outline_white_36dp)
                        .setTitle(exitLog)
                        .setMessage(sureLog)
                        .setPositiveButton(ok, new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                MainScreen.super.onBackPressed();
                            }
                        })
                        .setNegativeButton(cancel, new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {

                            }
                        })
                        .show();

            } else if (Functions.iNumberOfLoadedFragments > 0) {
                Functions.iNumberOfLoadedFragments--;
                super.onBackPressed();
            }
        }
}

ALertDialog должен отображаться в кнопке «Назад», нажатой из этой операции. Вместо этого приложение просто выходит из программы запуска.

Что может быть возможным? Ответьте, пожалуйста, с вашими ценными предложениями. Спасибо

1 Ответ

0 голосов
/ 12 ноября 2019

Используйте следующий код: AlertDialog для выхода из приложения

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
            .setMessage("Are you sure you want to EXIT ?")
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    moveTaskToBack(true);
                    finish();

                }

            })
            .setNegativeButton("No", null)
            .show();
}

upvote, если оно окажется полезным, чтобы другие могли получить ответ

...