我没有设计这个,但是情况就是这样:有一个带有按钮的PopupWindow。按钮处理程序与创建PopupWindow的Activity处于不同的活动。我想知道是否有一种方法可以使用View param到按钮处理程序来访问PopupWindow,以便在点击按钮时让它 dismiss()。
到目前为止,我已经能够使用一系列 getParent()来迭代到包含的PopupWindow。但是,当我这样做时,它说它是一个“PopupWindow $ PopupViewContainer”(PopupWindow本身不是从View派生的;它是从Object派生的)
有什么方法可以用它来访问实际的PopupWindow,所以我可以调用它的 dismiss()方法吗?
提前致谢!
答案 0 :(得分:0)
:重复Popup Window 只看到解决方案。
如果你在谈论解雇();
public void dismiss()
处理弹出窗口。只有在showAsDropDown(android.view.View)
执行后才能调用此方法。
答案 1 :(得分:0)
我没有设计这个......
如果您正在处理它,那么我建议您(稍微)更改架构以使其正确。
以下是我的建议:(我认为处理程序的代码在另一个活动中,因为这两个活动可以有弹出窗口吗?)
为可以拥有弹出窗口的所有活动提取基础超类(使其成为abstract
和extends Activity
,并且所有具体活动都将扩展该类),并放入这个中的处理程序代码。
在该基本活动中保留对父PopupWindow
的引用,因此您始终可以从处理程序或其他任何可能需要它的内容中访问它(保持该引用为私有以保留封装)。