Как создать всплывающее окно в методе oncreate класса обслуживания

Я пытаюсь создать всплывающее окно на главном экране при нажатии плавающего изображения (с помощью windowmanager).

поэтому при использовании layoutinflater Я не могу установить viewgroup во втором аргументе как findviewbyId не признается так что я держал null, как ниже.

LayoutInflater inflater = (LayoutInflater) Floater.this
                             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                     View layout = inflater.inflate(R.layout.popup_for_floating_img,
                             null);

                     pwindo = new PopupWindow(layout, 300, 370, true);
                     pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);

Но когда я нажимаю плавающее изображение на главном экране, оно выдает сообщение об ошибке ниже.

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

поэтому, пожалуйста, предложите мне путь вперед, чтобы получить всплывающее окно при нажатии.

Я пытаюсь всплывающее окно, как если бы мы включили плавающий виджет в приложении CLEAN MASTER и щелкнули по изображению с плавающей метлой.

1 ответ

Попробуйте это в вашей функции showPopup(...):

layout.post(new Runnable()
{
    public void run()
    {
        popup.showAtLocation(layout, Gravity.NO_GRAVITY, OFFSET_X, OFFSET_Y);
    }
});

где макет это ваше всплывающее окно. Это потому, что вы пытаетесь показать всплывающее окно еще до того, как создали действие.

Другие вопросы по тегам