09-30 23:30:01.968: E/AndroidRuntime(14741): Caused by: java.lang.NoSuchMethodException: WaterBoxView(Context,AttributeSet)
09-30 23:30:01.968: E/AndroidRuntime(14741): at java.lang.Class.getMatchingConstructor(Class.java:643)
09-30 23:30:01.968: E/AndroidRuntime(14741): at java.lang.Class.getConstructor(Class.java:472)
09-30 23:30:01.968: E/AndroidRuntime(14741): at android.view.LayoutInflater.createView(LayoutInflater.java:480)
09-30 23:30:01.968: E/AndroidRuntime(14741): ... 29 more
重点在于最后一句。
.NoSuchMethodException: WaterBoxView(Context,AttributeSet)
也就是没有这个对应的方法(没有定义inflate需要的默认构造函数),下面我们就实现它。
1 public WaterBoxView(Context context, AttributeSet attrs) { 2 super(context, attrs); 3 LayoutInflater inflater = (LayoutInflater) context 5 .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 6 inflater.inflate(R.layout.water_box, this); 7 8 }
这样就行了。