안드로이드 앱 왼쪾화면에 메뉴작업을 하다가 , 똑같은 반복되는 소스를 따로 모아놓고 사용하고싶어서 아래처럼 생각해보았습니다.
처음에 소스를 만들었을때는 A클래스에 버튼을 정의하고 버튼을 눌렀을때 동작하는 일반적인 ClickListener 를 달았습니다.
그런데 B클래스에도 똑같은 버튼이 필요하고 똑같은 정의를 해야 될 상황이 생겼습니다.. C, D, E클래스가 계속 생길 예정이라서..
그래서 버튼 정의 하는 부분을 따로 모아서 임의한개의 클래스에 모아 놓아야 사용이 편하겠다는 생각이 들어서 아래와 같은 형태로
소스를 작성해봤습니다.
그런데 이렇게 하면 bt_left.setOnClickListener(_activity); 이부분에서 문제가 생기더군요. menu 클래스가 Activity 가 아니라서
setOnClickListener 를 사용하지 못하는거 같습니다. 버튼 관련된 것들을 액티비티가 아닌 임의의 클래스에 모아서 구성할려면 어떤 방법이 있을런지요? 도움 부탁드리겠습니다~
Class A extends Activity{
MenuClass menu = null;
void onCreate(Bundle savedInstanceState) {
menu = new MenuClass();
menu.initSlideMenuButtons( this );
}
}
Class MenuClass { // 임의의 클래스에 버튼 관련된 것들을 모아놓고 사용하고 싶은데 setonclicklistener 같은거 사용시문제됨
public Button bt_left;
public void initSlideMenuButtons( Activity activity )
{
bt_left = (Button) activity.findViewById(R.id.btn_left);
bt_left.setOnClickListener(_activity);
}
@Override
public void onClick(View v) { // 현재 열려있는 화면을 선택했을 경우는 메뉴만 다시 닫는다.
switch (v.getId()) {
case R.id.btn_left:
menuLeftSlideAnimationToggle();
break;
}
}
}