xml Layout에 커스텀 뷰를 넣을 경우는 대부분은 아시겠지만..
Packgage : com.test
Class : CustomComponent
위를 main.xml에 넣을려구 할 경우
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.test.CustomComponent
android:id="@+id/customId"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
다음과 같이 작성 한다..
하!지!만! 이렇게 작성할 경우 가장 많이 보이는 이런 비슷한 에러를 볼 수 있다.
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.test.Com~~~~~
열심히 구글링을 해본 결과...
역시나 답은 있었다.
생성자에 꼭 AttributeSet을 넣어야 하는것이다.
public CustomComponent (Context context) {
super(context);
}
public CustomComponent (Context context,AttributeSet attr) {
super(context,attr);
}
꼭 위의 빨간색 같이 생성자를 넣어줘야만 하며!!
만약 클래스를 상속 받으면 부모 클래스에도 위와 같은 생성자를 넣어줘야합니다.
참고하세요.
출처:http://joshy21.com/weblog/25
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[ Android Opengl es ] 두 Texture 이미지가 겹쳤을 때 (14) | 2012.06.12 |
---|---|
[ Android ] 두 선 사이의 각도 구하는 공식 (0) | 2012.06.11 |
[ Android ] TextView에 DefaultDevice Style을 적용하는 방법. (0) | 2012.03.16 |
[ Android ] 안드로이드 프로세스 확인 (0) | 2012.03.02 |
[ Android ] Live wallpaper 프로세스 제거 (0) | 2012.03.02 |