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

View 구성이 이럴때는 어떻게 처리해야 할까요?

0 추천
안녕하세요.

 

우선 프로그램의 구조는 이렇습니다.

Class A extends Activity

Class B extends Framelayout

Class C extends Popup

 

이 상황에서 A가 B를 호출해서 A의  view 에다가 B의 레이아웃을 띄웁니다. 여기까지는 별문제가 없네요

A에서는 Framelayout.addView(B) 로 B를 호출하고

B에서는 ((ViewGroup)getParent()).addView(C);  C를 호출합니다.

 B에 있는 특정 버튼을 클릭하면 C를 화면에 띄우는데, 문제는 C에는 라디오 버튼이 있습니다.

그래서 이 라디오 버튼을 클릭했더니

아래와 같은 Exception이 나네요.

Could not find a method onRadioButtonClicked(View) in the activity class A for onClick handler on view class android.widget.RadioButtion...

 

A에다가 B를 띄우고 그 위에 다시 C를 띄웠더니 A에 radiobuttionclicked 가 없다는 오류인셈인데... 지금 현재는 아래와 같이 C에 구현해놓았습니다.

Class C의 내용.

private void onRadioButtonClicked(View v) {
  // TODO Auto-generated method stub
  if(v == _radioOptimized){   
   tx.setText("OPTIMIZED");
  }
  else   
   tx.setText("FULL RESOLUTION");
  

그러면 이 내용을 뜬금없이 Radiobuttion 과는 상관없는 Activity class인 A에 써야 하나요?

그렇다면 A에는 어떤식으로 작성해야하는지 아시는분 설명 좀 부탁드립니다.

Depth가 3이 되니... 복잡하네요...

 

아 추가질문이 있는데.. 이렇게 A가 B를 띄우고 B가 C를 띄웠을때, C에서 B로 가는방법과 A로 바로가는 방법이 궁금합니다.

C에서 B로 가는거는(즉 현재 화면에 띄워져 있는 view를 없애는것) getParent().removeView 하면 될거 같은데 한번에 다시 A로 돌아가는걸 모르겠네요...
탯탯탯 (430 포인트) 님이 2013년 4월 5일 질문
탯탯탯님이 2013년 4월 5일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...