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

framelayout 하위 뷰에서 다른하위 뷰 접근하기.

0 추천

activity에 framelayout하나가 있습니다.

이는 xml파일로 선언했구요.

이 framelayout안에는 또다른 xml로 선언한 fragment하나가 있고, java로 구현한 커스텀 뷰가 하나 있습니다.

activity_main.xml부분은

<framelayout> .....
    <fragment ....  class="..."/>
</framelaytout>

이렇게 되어있구요.

 mainactivity.java안에서

FrameLayout f = (FrameLayout)findViewById(R.id.frame);

View cv =  new CutsomView(this);

f.addView(cv);

이렇게 addView했습니다.

 

fragmentclass.java 부분은

onViewCreated (.....) {
   LinearLayout l = (LinearLayout)inflater.inflate(R.layout.frag);
   ImageView iv = (ImageView)l.findViewById(R.id.Imgv);
   iv.setDrawable(...);
   return l;
}

이렇게 되어있ㅆ습니다. fragment.java에서 가져오는 frag.xml은 linearlayout하나와 imageview로 이루어져있습니다.

 

제가 원하는것은, 위에 mainactivity에서 addview한 cv에서 fragment안의 imageview에 접근하려고 하는데

fragment가 익숙하지않아서 그런지 힘드네요.

여러가지 메소드를 찾아봐도 방법이 안 나오더라구요..

혹시 아이디어 있으시면 조언 부탁드립니다!

 

모나미153 (17,540 포인트) 님이 2013년 11월 25일 질문
모나미153님이 2013년 11월 25일 수정

1개의 답변

0 추천
꼼수로는 custom fragment 클래스에서 findviewid 해서 imageview를 가지고 올때

멤버 변수에 레퍼런스를 등록하고 메소드를 통해 접근하는 방법은 어떤가요..

물론 nullpointerexception 같은 처리를 하구요..
익명사용자 님이 2013년 11월 25일 답변
아 그러면 fragment에서 static 메소드 하나 만들어서 사용하면 가능할까요?
...