앱 만들기/안드로이드

이너클래스를 커스텀 뷰 로 사용하기

나도 처음이야 2022. 7. 3.

https://soo0100.tistory.com/1875

 

XML 과 커스텀 뷰 같이 사용하기

https://soo0100.tistory.com/1874 코드로 로직 구성 및 XML 컴포넌트들의 인 플레이트 어찌 보면 이 두 개가 다다. 물론 로직 구성을 위한 데이터 처리를 위" data-og-host="soo0100.tistory.com" data-og-source..

soo0100.tistory.com

지난 시간 XML 에디터에서 커스텀 뷰를 불러와서 화면을 

구성하는 예제를 살펴보았다. 이때 커스텀 뷰는 별도의 public class 였지만 오늘은 커스텀 뷰가 이너클래스 인 경우 

XML 에디터 에서 어떻게 커스텀 뷰를 불러 올 수 있는지에 대한 내용입니다.

 

지난 시간 커스텀 뷰는 별도의 클래스를 만들어서 하기처럼 XML에디터에서 불러들였다.

이너클래스 역시 이렇게 코딩을 하면 인플레이팅 에러로 앱이 죽게된다.

Error inflating class

   <bluemooninsea.soo.graphic.MyView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="8" />

결론은 하기처럼 이너클래스를 XML에 삽입하자.

view class ="" 로 스트링 으로 패키지로 클래스를 명을 써서 이너클래스를 불러들인다.

이너클래스를 위해서 사용된 $는 XML 코드에서는 에러를 발생시키기에 view class 를 사용한다.

<view class="bluemooninsea.soo.graphic.MainActivity$MyViewTest"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="8" />

추가로, 이너 클래스는 static 으로 수정한다.

public static class MyViewTest extends View {

 

정리하자면, 

1. 이너클래스를 static 으로 선언하고

2. XML에서는 view class="" 구문을 사용하여 해당 커스텀 뷰를 불러들인다.

 

감사합니다.

반응형

댓글