Java 仅将此作为上下文使用的弹出菜单
当使用此代码构建弹出菜单时Java 仅将此作为上下文使用的弹出菜单,java,android,popupmenu,Java,Android,Popupmenu,当使用此代码构建弹出菜单时 PopupMenu menu = new PopupMenu(getApplication(), view); menu.getMenu().add("first"); menu.getMenu().add("second"); menu.show(); 将引发此错误: java.lang.RuntimeExeption:二进制XML文件行#17您必须提供 布局\高度分布 使用此而不是getApplication()时,一切正常。 这里有什么问题?为什么我不能通过g
PopupMenu menu = new PopupMenu(getApplication(), view);
menu.getMenu().add("first");
menu.getMenu().add("second");
menu.show();
将引发此错误:
java.lang.RuntimeExeption:二进制XML文件行#17您必须提供
布局\高度分布
使用此
而不是getApplication()
时,一切正常。这里有什么问题?为什么我不能通过
getApplication()
获得对上下文的引用?我建议您阅读本文。它解释了不同类型的上下文之间的差异。请特别注意标题为“上下文能力”一节中的表格
简言之,当您使用getApplication()
(这在很大程度上与getApplicationContext()
相同)时,您得到的Centext
只是一部分。由于应用程序
没有UI,因此在涉及UI元素时,有些事情是您无法使用它的。您不想要getApplicationContext()
?@tyczj:请参阅我的答案和我链接到的文章。特别是上下文功能部分中的表。