PopupWindow子类无法调用onCreate()方法问题求助
解决PopupWindow子类调用onCreate()报错的问题
嘿,我来帮你搞定这个问题!先拆解下你代码里的两个核心问题:
1. 构造函数写法错误
你写的public void MyPopupWindow()是个普通方法,不是Java的构造函数。构造函数的规则是和类名完全同名,且没有返回值类型,正确写法应该去掉void:
public MyPopupWindow() { // 在这里写初始化逻辑 }
2. PopupWindow根本不存在onCreate()方法
onCreate()是Activity独有的生命周期回调,PopupWindow作为弹窗组件,本身没有这个生命周期方法。你调用super.onCreate()自然会提示“找不到方法”。
正确的PopupWindow子类实现示例
如果要初始化弹窗的布局、宽高、交互属性,直接在构造函数里完成即可,比如:
import android.content.Context; import android.view.LayoutInflater; import android.widget.PopupWindow; public class MyPopupWindow extends PopupWindow { public MyPopupWindow(Context context) { // 调用父类构造函数,传入必要参数 super(context); // 加载自定义弹窗布局 LayoutInflater inflater = LayoutInflater.from(context); setContentView(inflater.inflate(R.layout.your_popup_layout, null)); // 设置弹窗宽高 setWidth(400); setHeight(300); // 配置弹窗交互,比如点击外部关闭、背景等 setOutsideTouchable(true); setBackgroundDrawable(null); } }
这样写就完全没问题了,记住PopupWindow不需要依赖onCreate方法,直接在构造函数里完成初始化就好。
内容的提问来源于stack exchange,提问作者Barry
相关产品推荐
相关产品推荐

