2014-03-31 3 views
0

배열을 수신하고 배열 을 기반으로 레이아웃을 만드는 LinearLayout을 확장하는 클래스가 있습니다.XML의 사용자 정의 선형 레이아웃

이제 활동의 OnCreate 메소드에서 레이아웃을 작성하고 레이아웃에 setContentView 을 사용하십시오. 레이아웃 XML 파일에서 LinearLayout 또는 유사한 방법을 사용하므로 XML로 사용할 수 있는지 여부를 알고 싶습니다.

답변

0

사용자 정의 LinearLayout을 레이아웃에 사용하려면 <path_to_your_custom_layout_class...으로 새 요소를 선언하십시오.

+0

좋아,하지만 어떻게 내 부울 multidimesinal 배열을 전달할 것이라고? – aclokay

+0

런타임 전에 배열이 있습니까? –

+0

@ user1050389 짧은 대답은 할 수 없습니다. 레이아웃을 스타일 지정 가능하게 만들고 사용자 정의 속성을 적용 할 수 있지만 Android에서 XML로 2D 배열을 만들 수는 없습니다. 따라서 프로그래밍 방식으로 처리해야합니다. – adneal

0

예. 가능합니다. XML 레이아웃에서

:

<com.my.package.MyView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:MyStyleable="http://schemas.android.com/apk/res/com.my.package" 
    android:id="@id/id" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    MyStyleable:attr1="ATTR1 VALUE" 
    MyStyleable:attr2="ATTR2 VALUE" /> 

알림 사용자 지정 특성을 포함 사용자 정의 xml namespace xmlns:MyStyleable.

<resources> 
    <attr name="attr1" format="string" /> 
    <attr name="attr2" format="boolean" /> 
</resources> 

그런 다음 사용자 정의 뷰 클래스에, XML에서 값을 검색 :

사용자 정의 정의는 res/values/attr.xml 속성

String attr1 = a.getString(R.styleable.attr1); 
boolean attr2 = a.getBoolean(R.styleable.attr2); 

은 분명 바랍니다. !

+0

하지만 부울 배열이 필요합니다. 하나의 속성뿐만 아니라 – aclokay

+0

같은 방법으로 할 수 있습니다. 부울 배열의 이름을 사용자 정의보기로 전달하는'String' 속성을 만듭니다! –