2011-11-24 12 views
8

私はAndroid(Java)開発に全く新しいので、とても興奮しています! Googleの開発者ガイドは素晴らしいですし、少しでも多くのことを学びました。 )夜間にも私を目覚めさせてくれる;)アクティビティのクラスを拡張する

今日私はメニューを作りました。私は理解できないことがあります。それはクラスを拡張することです。ガイドは言う:

ヒント:アプリケーションが複数のアクティビティが含まれ、そのうちのいくつかは、同じオプションメニューを提供 場合、 はonCreateOptionsMenu(以外は何も実装していない活動)と onOptionsItemSelected()メソッドを作成することを検討します。次に、同じオプションメニューを共有する各アクティビティのこのクラスを拡張します。この方法では、 を使用してメニューアクションを処理するコードを1セットだけ管理し、各子孫クラスはメニューの動作を継承します。私は得ることはありません

ポイントは、クラスを拡張する方法です...レッツは、私がMainActivitySubActivityを持っていると言います。私は両方の活動で同じメニューを作りたいので、私はMainMenuActivityを作っています。どちらのアクティビティでもこのクラスを拡張するにはどうすればよいですか?

はいネットで検索しましたが、使用可能なものが見つかりませんでした。私は本当にそれを理解したいので、誰かがサンプルコード+説明で私を助けてくれることを願っています。前もって感謝します!!

+0

確認し、[この](のhttp:// stackoverflo w.com/questions/7618227/can-i-combine-my-code-into-some-kind-of-global-activity/7618263#7618263)あなたが話しているのとまったく同じです。 –

答えて

18

彼らは何を意味することは以下の通りです:

通常はあなたが持っているでしょう:

public class MyActivity extends Activity{...} 

をあなたはそれらの活動の4-5-6 ...を持っており、それらのそれぞれが同じメニューを使用している場合コードをコピーすると、コード4-5-6 ..をコピーして貼り付けることができます。

public class BaseActivity extends Activity{ 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     //My menu code 
    } 
} 

そして、あなたの4-5-6 ...活動のために、このクラスを使用します:あなたがにあなたのメニューの作成コードをコピーする必要はありません

public class MyActivity extends BaseActivity{...} 

この方法それとも、これを行うことができますまた、メニューの作成を少し編集するために4-5-6のクラスを編集する必要はありません。メニューコードはMyActivityにもなりました。


あなたがまた見hereを持っている可能性があり、それは何extends手段を説明します。

+0

ありがとうございます!今私はそれを得る、それは私が思ったより簡単です! – MartijnG

9

本当に簡単です。

MainMenuActivity

public class MainMenuActivity extends Activity { 
    //Override or add whatever functionality you want other classes to inherit. 
} 

MainActivity

public class MainActivity extends MainMenuActivity { 
    //Add what is specific to MainActivity. The menu will be inherited from MainMenuActivity. 
} 

SubActivityまた

public class SubActivity extends MainMenuActivity { 
    //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity. 
} 
関連する問題