在自定义控件时,常常会带有3个构造方法,那么我就会想到,为什么要3个呢,只写一个会怎么样呢?
如果只实现一个构造方法,比如
public MyButton(Context context) {
super(context);
}
,那么你在xml中使用的时候,就会报这样的错
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.DrawEdxtView/com.example.DrawEdxtView.MyActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class com.example.DrawEdxtView.DrawEdxtView
但是如果你只实现了一个构造方法,要使用这个自定义控件的话,就用代码去实现吧,在activity中这样写:MyButton mButton=new MyButton(this);
采用new的方法是不会报错的,具体原因还没了解,这是google定义的机制
本文深入解析了在自定义控件时为何需要三个构造方法,并通过实例说明只实现一个构造方法可能导致的错误及解决策略。重点讨论了Google定义的机制以及如何在Activity中正确使用自定义控件。
1892

被折叠的 条评论
为什么被折叠?



