2012-02-27 2 views
0

저는 Java (Eclipse)에서 새로운 기능을 제공하며 일부 코드로 파일을 만들 수있는 방법이 있는지 알고 싶습니다. 그냥 클래스에서 호출하십시오. 다른 결과를 얻기 위해 많은 클래스가 있기 때문에 하나에서 다른 것으로 변경되지 않는 코드 (예 : 메뉴)가 있으며 코드를 변경하지 않고 변경해야 할 때 이것을 좀 더 실용적으로 만들고 싶습니다. 수업별로. 이렇게 할 방법이 있습니까?Android SDK - Eclipse - 둘 이상의 클래스에서 일부 코드를 사용하는 방법

+1

내가 당신이 원하는 것 같아요 ...

public class MenuHelper { public static void build(Menu menu) { menu.add(Menu.NONE, Key.Activity.LOGOUT, 0, R.string.label_logout) .setIcon(android.R.drawable.ic_menu_close_clear_cancel); menu.add(Menu.NONE, Key.Activity.FEEDBACK, 0, com.bytebenderapps.dbitly.R.string.label_feedback).setIcon( android.R.drawable.ic_menu_send); } public static boolean onMenuItemSelected(int featureId, MenuItem item, Context context) { switch (item.getItemId()) { case Key.Activity.LOGOUT: removeCredentials(context); startLoginActiviy(context); break; case Key.Activity.FEEDBACK: startFeedbackActivity(context); break; } return true; } private static void startLoginActiviy(Context context) { Intent intent = new Intent(context, LoginActivity.class); context.startActivity(intent); } private static void removeCredentials(Context context) { Editor editor = PreferenceManager.getDefaultSharedPreferences(context) .edit(); editor.clear(); editor.commit(); } public static void toggleLogoff(Menu menu, boolean userLoggedIn) { MenuItem item = menu.findItem(Key.Activity.LOGOUT); item.setEnabled(userLoggedIn); } private static void startFeedbackActivity(Context context) { context.startActivity(new Intent(context, FeedbackActivity.class)); } } 

그리고 내 활동 중 하나에서 다음 구현이 이런 식으로 할 수있는 감각을했다, 그래서 내 활동의 많은에 대해 동일 상속을 들여다보기 – simchona

+1

... 또는 기본 클래스와 패키지 사이의 가시성. – malexmave

+0

일반적인 코드는 코드 재사용 (또는) 부모/자식이라는 두 가지 의미가 있습니까? – kosa

답변

3

나는 이것을 내 프로젝트에서 Helper 클래스를 호출하는 클래스로 수행한다. GoogleIO 앱 소스 코드에서 아이디어를 얻었습니다. 그들은 ActivityHelper라는 클래스를 가지고 있습니다. 그것은 당신이 말하는 것과 정확히 똑같습니다. 한 곳에서 반복적으로 사용되는 코드를 넣습니다. 다음은 내 MenuHelper 클래스의 예입니다. 내 메뉴

public class MyActivity { 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuHelper.build(menu); 

     return true; 
    } 

    @Override 
    public boolean onMenuItemSelected(int featureId, MenuItem item) { 
     super.onMenuItemSelected(featureId, item); 

     return MenuHelper.onMenuItemSelected(featureId, item, this); 
    } 

} 
+0

많이 고마워요! –

+0

대단히 환영합니다. – bytebender

1

일부 코드를 게시하거나 달성하려는 목표와 현재 접근 방식에 대한 더 나은 단서를 제공하면 귀하의 의구심을 해결하는 데 도움이됩니다.

일반 대답은 당신이하고

가 어쨌든 this post/thread 당신에게 유용 할 수 있습니다 적용 할 다른 방법이있는 케이스에 다른 클래스에서 코드를 분리하지만, 케이스에서해야 할 수있는 것입니다.

+0

너를 고마워, 그 링크도 나를 도왔습니다 –

관련 문제