2012-04-08 5 views
0

나는 그 활동에서 동일한 코드를 사용하고자하는 여러 활동을 가지고 있습니다. 각 활동마다 동일한 코드 묶음을 사용하여 작업을 마쳤습니다. 어떻게이 중복 코드를 최소화 할 수 있습니까? 클래스 활동을 확장 :오브젝트를 만들지 않고 Android에서 중복 코드를 최소화하는 방법

Plz은 도움이 나는 객체를 생성하고 중복을 제거하기위한 방법의 사용 싶지 않는이 일을 위해 은 ... 는

+0

왜 중복성을 줄이기 위해 다른 개체를 사용하지 않으시겠습니까? –

+0

@JacobPhillips : coz 내가 만든 물건을 만드는 것은 리소스, 성능 등의 측면에서 비용이 많이들 것입니다. 모바일 응용 프로그램에서는 권장되지 않습니다 ... 이봐, 내가 잘못하면 알려주지 ... 안드로이드 입문 ... –

+0

공통된 ("중복") 메소드가 있어야하고 다른 액티비티가 상속하는 새로운 클래스에 포함시켜야한다고 생각합니다. 메모리 사용을 의식하고 싶지만 매우 단순한 객체를 만드는 것이이 (대부분의) 상황에서 완벽하게 수용됩니다. –

답변

5

해결책은 간단하다 .... U 감사 그에게 당신이 원하는 모든 방법을 추가하십시오. 대신 클래스 활동을 확장 - - 당신이 새로운 활동을 개발할 때 다음
을 (나는 보통 예를 들어이 클래스 BaseActivity 전화) 추가 한 방법을 포함 당신은했습니다 BaseActivity 클래스를 확장 ..

public class BaseActivity extends Activity 
{ 
protected int mSomeValue; 

protected void someMethod1() 
{ 

} 

protected void someMethod2() 
{ 

} 

protected void someMethod3() 
{ 

} 

} 

class SomeActivity extends BaseActivity 
{ 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    someMethod1(); 
} 
} 

class SomeActivity2 extends BaseActivity 
{ 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    someMethod1(); 
} 
} 
+0

안녕하세요, 감사합니다 ... 설명해 주신 ... –

+0

언제든지 도와 주셔서 감사합니다. –

+0

하지만 해결 된 것으로 내 질문에 표시하지 않으시겠습니까? –

5

"BaseActivity"를 만들고 해당 단일 클래스에 많은 코드를 포함시킨 다음 클래스를 만들고 "BaseActivity"를 확장 할 수 있습니다.

public class BaseActivity extends Activity { 

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 

    case R.id.donate: 
     //something 
     break; 

    case R.id.about_menuitem: 
     //something 
     break; 

    case R.id.exit: 
     finish(); 
     break;   

    default: 
     return true; 
    } 
    return true; 
} 
} 

내가이 클래스에서 "BaseActivity"라는 클래스를 만들어 내 안드로이드 옵션 메뉴를 가지고 있고 또한 "활동"을 확장 : 여기

내가 당신이 찾고있는 생각이다. "Activity"를 확장하고이 클래스에서 내 옵션 메뉴를 가지고 있기 때문에 지금 다른 모든 클래스에 대해이 동일한 메뉴 코드를 사용할 수 있습니다.

나는 단지 나의 새로운 클래스를 생성하고 "BaseActivity"로 확장 :

public class SomeOtherActivity extends BaseActivity { 
//new code here 
} 

지금 "SomeOtherActivity"라는 클래스가, 내 메뉴 코드도 "활동"을 상속합니다.

이 내용을 시험해보고 저에게 도움이되는지 알려주세요.

관련 문제