我正在尝试创建一个仅在应用程序第一次启动时出现的弹出窗口。我希望它显示一些文本并有一个按钮来关闭弹出窗口。但是,我无法让 PopupWindow 正常工作。我尝试了两种不同的方法:
首先,我有一个 XML 文件,它声明了名为 popup.xml 的弹出窗口的布局(一个线性布局内的文本视图),并且我在我的主 Activity 的 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 并说“无法添加窗口——令牌 null 无效”
我到底做错了什么?我非常新手,所以请多多包涵。