Как создать всплывающее окно в методе 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);
}
});
где макет это ваше всплывающее окно. Это потому, что вы пытаетесь показать всплывающее окно еще до того, как создали действие.