마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀레이아웃(xml)에대한 코드비하인드는 어떻게 작성하나요?

0 추천

CustomWidget xml을 만들었습니다

...
<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
...

 

이 레이아웃 text 에 대한 코드를 작성하고싶은데 어떻게 위젯이랑 코드(Class)를 연결 하나요?
아래 컨스트럭트에서 레이아웃을 불러온다? 어떻게 해야하나요?
 setContentView를 넣으면 되나요? 아닌거 같은데...

public class CWidget extends View
{
   public CWidget(Context context, AttributeSet attrs)
   {
      super(context, attrs);
   }
}
토토로찡 (340 포인트) 님이 2016년 4월 11일 질문

1개의 답변

0 추천
 
채택된 답변
Layoutinflater를 이용해서 View를 상속받은 Class에서 해당 xml을 받아 쓰시면 됩니다

원하시는건 Layoutinflater 관련으로 검색해 보시면 충분히 찾으실수 있으실겁니다

http://arabiannight.tistory.com/entry/340
페어리 (12,270 포인트) 님이 2016년 4월 11일 답변
토토로찡님이 2016년 4월 11일 채택됨
감사합니다
inflate까진 했는데 그 (레이아웃이 있는)클래스를 다른 xml에서 사용하려고 합니다.


아... 정리하기가 힘드네요

1. 커스텀 레이아웃 xml을 만들고 java코드를 넣은 것을
2. 다른 레이아웃xml혹은 엑티비티xml에 붙여 넣어고 싶습니다.


public class CWidget extends View 에서 inflater를 한후 그걸 화면에 붙이려면 어떻게 할까요?
{
      CWidget(Context context)
      {
             ....  LinearLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.sound_widget, null);  <- 이 linearLayout이 어떻게 하면 아래 xml에 나타나게 할 수 있을까요?
       }
}


activity_main.xml에
...
<com.test.customwidget.CWidget
.../>
이런식으로 넣고 싶은데
...
inflater.inflate(R.layout.sound_widget, this, true);
자세히보니 LayoutGroup에 attatch root가 있네요 ㄷㄷㄷㄷ
여기까지 오게 해주심 감사합니다^^
...