2011-08-26 5 views
7

여러 액티비티에는 onCreateOptionsMenu, onOptionsItemSelected 및 onKeyDown이 동일합니다. 변경을 구현할 때 모든 활동 (작업 시간 * 활동 횟수)에서 변경해야합니다. 코드를 재사용 할 수있는 방법이 있습니까? 예를 들어 세 가지 방법 모두를 한 곳에서 작성하고 모든 활동에 참조를 넣으십시오.여러 활동, 동일한 onCreateOptionsMenu, onOptionsItemSelected 및 onKeyDown. 어떻게 든 코드를 재사용 할 수 있습니까?

답변

10

물론, 모든 클래스에서 상속받은 자신 만의 Activity 클래스를 만드십시오.

이 같은 비트 - Activity에서 상속 공통 동작을 구현하는 추상 기본 클래스를 만듭니다

public abstract class MyBaseActivity extends Activity { 
    public Menu onCreateOptionsMenu(Menu menu) { 
     /* do common menu stuff */ 
    } 
} 

그런 다음 개별 활동이 기본 클래스에서 상속합니다

public class MyActivity extends MyBaseActivity { 
    // inherits behaviour from MyBaseActivity 
    // so don't need to re-implement onCreateOptionsMenu 
} 
+1

물론 감사합니다. 두 답변 모두 정확한 시간에 작성되었으므로 올바른 답변 (@alextsc보다 낮은 평판)과 대답 alextsc 답을 승인 할 것입니다. –

6

물론, 기본 활동을 만들고 거기에 코드를 작성하십시오.

public class MenuActivity extends Activity { 
    // Menu stuff goes here 
} 

그런 다음 별도의 활동을 연장하십시오.

public class MyActivity1 extends MenuActivity { ... } 
public class MyActivity2 extends MenuActivity { ... } 
public class MyActivity3 extends MenuActivity { ... } 
+1

나는 두 가지 대답을 올바른 것으로 받아 들일 수 없으므로 나는 단지 당신의 투표를 올릴 것입니다. –

+1

문제는 없지만 동시에 게시했습니다. 나는 데이브가 어쨌든 더 나은 것을 주었다고 생각한다. :) –

관련 문제