Как завершить sh действие, на которое нажимается, когда у вас всплывающее окно - PullRequest
0 голосов
/ 30 апреля 2020

Для приложения, которое я сейчас создаю, я надуваю всплывающее окно с активностью, если нет соединения inte rnet, проблема в том, что, если пользователь нажимает кнопку возврата своего телефона, всплывающее окно исчезает, но вы все равно можете увидеть деятельность без какой-либо информации. Я хотел бы также найти способ завершить sh действие, когда нажата кнопка «Назад». Вот код для всплывающего окна, которое я сейчас раздуваю:

public void connection_error(final Class<?> clss){
        if(!Functions.isOnline(getApplicationContext())) {
            LayoutInflater inflater = (LayoutInflater)
                    getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView = inflater.inflate(R.layout.popup_nointernet, null);

            int width = LinearLayout.LayoutParams.MATCH_PARENT;
            int height = LinearLayout.LayoutParams.MATCH_PARENT;
            boolean focusable = true; // lets taps outside the popup also dismiss it
            final PopupWindow popupWindow = new PopupWindow(popupView, width, height, focusable);

            popupWindow.showAtLocation(findViewById(R.id.drawer_layout), Gravity.CENTER, 0, 0);

            Button btn_retry = popupView.findViewById(R.id.btn_retry);
            btn_retry.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (Functions.isOnline(getApplicationContext())) {
                        finish();
                        popupWindow.dismiss();
                        launchActivity(clss);
                    } else {
                        Toast.makeText(getApplicationContext(), getResources().getString(R.string.label_no_internet), Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }

1 Ответ

0 голосов
/ 30 апреля 2020

Установите логическое значение, которое установлено в true, если ваше всплывающее окно открыто. Что-то вроде

boolean popUpOpen = true;

Переопределить метод onBackPressed:

@Override
public void onBackPressed() {
     if(popUpOpen){
       super.onBackPressed(); // Closes Popup.
     }
     super.onBackPressed(); // Normal Behaviour - Finishes Activity if popup is open
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...