运行程序时发现Android2.3版本会出现java.lang.NullPointerException的错误,但Android4.0及以上版本均无错误。通过分析错误发现,是PopupWindow构造函数的错误。因为在4.0版本之后做了底层的优化,2.3版本则需要修改构造函数。
错误:
AndroidRuntime java.lang.NullPointerException和android.widget.PopupWindow.setContentView等等错误的解决办法:
构造函数public Popup(Context context, int width, int height)
{
this.mContext = context;
.....
}
修改为public Popup(Context context, int width, int height)
{
super(context);//加上这句
this.mContext = context;
.....
}
或者修改为
public Popup(Context context,View contentView)
{
super(contentView); this.mContext = context;
this.mContentView = contentView;
......
}
即可解决问题。