2012-02-27 1 views
0

私はJava(Eclipse)で新しく、コードを使ってファイルを作成する方法があるかどうかを知りたいクラスで呼び出すだけです。 私は異なる結果を得るために多くのクラスを持っているが、あるものから別のもの(例えばメニュー)に変化しないコードがあり、変更を加えずにそのコードを適応させる必要があるときにこれをもっと実用的にしたいクラスごとにクラス。 これを行う方法はありますか?Android SDK - Eclipse - 複数のクラスでいくつかのコードを使用する方法

+1

で実装継承を調べる – simchona

+1

...または基本クラスとパッケージ間の可視性。 – malexmave

+0

共通コードには、コード再使用(または)の親/子という2つの意味がありますか? – kosa

答えて

3

これは私のプロジェクトで、私がヘルパークラスを呼び出すクラスで達成します。私はGoogleIOアプリのソースコードからそのアイディアを得ました。彼らにはActivityHelperというクラスがあります。あなたの話していることを正確に行い、何度も繰り返し使用されるコードを1か所に置きます。ここでは、私のMenuHelperクラスを例に挙げます。私のメニューは、それは、このようにそれを行うには意味があったので...私の活動の多くのために

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)); 
    } 
} 

同じである。そして、私はあなたが必要かもしれないと思う私の活動の一つ

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

おかげで、そのリンクも私を助けた –

関連する問題