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

하나의 액티비티에서 두개 이상의 XML 제어를 하고자 합니다.

0 추천
            <!-- include -->
            <include
                android:id="@+id/subactivity"
                layout="@layout/subactivity"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>


@@@@@@@@<subactivity.xml>@@@@@@@@@@

    <Button
        android:id="@+id/btn1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#000000ff"
        android:text="기능1"
        android:textColor="#ffffff" />

@@@@@@@@@@@@@<MainActivity>@@@@@@@@@@@@@@

          
        FrameLayout viewGroup = (FrameLayout) findViewById(R.id.btn1).getParent();
        enableDisableViewGroup(viewGroup, false);

        public static void enableDisableViewGroup(ViewGroup viewGroup, 
                                                 boolean enabled) {
        int childCount = viewGroup.getChildCount();
        for (int i = 0; i < childCount; i++) {
            View view = viewGroup.getChildAt(i);
            if(view.getId() != R.id.bt_left) {
                view.setVisibility(View.GONE);
            }
}

 

제가 하고자 하는 것은 슬라이딩 메뉴에서 1차 메뉴 클릭시 2차 메뉴로 넘어가게끔 하는 것 입니다.

구상은 각 메뉴 묶음들을 xml 파일로 만들어 xml 파일을 GONE, VISIBLE과 같은 기능을 이용해 키고 끄는것을 만들고자 했습니다만;

문제가 생겨서 이곳에 질문을 올립니다...ㅠㅠ

mainactivity.xml은 include를 통해 subactivity를 불러와 사용하고 있습니다.

MainActivity에선 두 xml파일 다 사용이 가능한데 유독

 

FrameLayout viewGroup = (FrameLayout) findViewById(R.id.btn1).getParent();

 

부분에서 에러가 자꾸 발생합니다....

메인에서 subactivity의 갯수를 세고 GONE 설정을 주려고하는데 에러로 인해 진행이 안되네요 ;

 

메인엑티비티 > 메인엑티비티.xml >(include) 서브엑티비티 

 

위와 같은 순서로 파일들을 연결했는데 안되는 이유가 뭔지 알려주시면 정말 감사하겠습니다 ㅠㅠ

글이 뒤죽박죽이라 정말 죄송합니다...

이틀째 못잤어요 ..ㅠㅠ

 

 

 

 

 

익명사용자 님이 2015년 8월 10일 질문

1개의 답변

0 추천
일단 에러가 나면 당연히 로그를 올리셔야죠

올려주신 소스만 봐서는 R.id.btn1이 LinearLayout 안에 있는데, 코드에서는 R.id.btn1의 parent를 FrameLayout으로 형변환하고 있네요. 그래서 에러 나는거 아닌가요?
cc1232 (35,280 포인트) 님이 2015년 8월 11일 답변
...