アプリケーションの初回起動時にのみ表示されるポップアップ ウィンドウを作成しようとしています。テキストを表示し、ポップアップを閉じるボタンが必要です。ただし、PopupWindow を機能させるのに問題があります。私はそれを行う2つの異なる方法を試しました:
まず、popup.xml というポップアップのレイアウトを宣言する 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);
1 つ目は NullPointerException をスローし、2 つ目は BadTokenException をスローして、「ウィンドウを追加できません -- トークン null が無効です」と表示します。
私は一体何を間違っているのでしょうか?私は非常に初心者ですので、ご容赦ください。