Я пытаюсь создать всплывающее окно, которое появляется только при первом запуске приложения. Я хочу, чтобы он отображал текст и имел кнопку, чтобы закрыть всплывающее окно. Однако у меня возникают проблемы с тем, чтобы PopupWindow работал даже. Я пробовал два разных способа сделать это:
Сначала у меня есть XML файл, который объявляет макет всплывающего окна popup.xml(текстовое представление внутри linearlayout), и я добавил это в OnCreate() моего основного действия:
PopupWindow pw = new PopupWindow(findViewById(R.id.popup), 100, 100, true);
pw.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 0, 0);
Второй я сделал то же самое с этим кодом:
final LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup, (ViewGroup) findViewById(R.layout.main) ), 100, 100, true);
pw.showAtLocation(findViewById(R.id.main_page_layout), Gravity.CENTER, 0, 0);
Первый бросает исключение NullPointerException, а второй выдает исключение BadTokenException и говорит: "Невозможно добавить нулевой токен окна".
Что в мире я делаю неправильно? Я очень новичок, поэтому, пожалуйста, несите меня.