Android自定义view的三个构造函数理解

怎么理解这三个函数?为什么要写三个?不同的都有什么作用?请大神能够深入简出说一说....

public class MyView extends View {

    public MyView(Context context) {
        this(context, null);
    }

    public MyView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

}
阅读 8.1k
评论
    3 个回答
    • 26.6k

    第一属于程序内实例化时采用,之传入Context即可
    第二个用于layout文件实例化,会把XML内的参数通过AttributeSet带入到View内。
    第三个主题的style信息,也会从XML里带入
    现在还有第四个参数了…以后可能还会有更多

    一般继承View类,知晓熟悉使用前两个方法即可,后面的都很少用到。