android 自定义控件 重载LinearLayout,为什么报错constructor LinearLayout(Context, AttributeSet, int) is undefined?

解决方案 »

  1.   

    public class TitleBar extends LinearLayout{
    Context mBrowserActivity; public TitleBar(testXML context) {
    super(context);
    // TODO Auto-generated constructor stub

    initView(context);
    }

    public TitleBar(Context context, AttributeSet attrs) {
      super(context, attrs);
      initView(context);
        }    public TitleBar(Context context, AttributeSet attrs, int defStyle)
        {
         //super(context, attrs, defStyle);/////////////////error
    initView(context);
    }
    }
      

  2.   

    这说明 你自定义的ViewGroup需要调用父类的构造方法。因为很多空间的属性需要的父类中完成解析
      

  3.   

    调了super(context, attrs, defStyle);但是说LinearLayout没有定义这个方法,
    其实是有的,为什么报错
      

  4.   


      我看了下源码,LinearLayout确实没有定义这个构造函数,ViewGroup倒是提供了。
    我觉得LinearLayout没提供的可能是为了防止对该控件造成额外的解析。
     public LinearLayout(Context context) {
            super(context);
        }    public LinearLayout(Context context, AttributeSet attrs) { 
            super  ....
        }