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 }
這樣就行了。