10

Android (Java) 開発はまったくの初心者で、とてもワクワクしています。Google のデベロッパー ガイドは素晴らしく、短期間で多くのことを学びました。夜中に目が覚めることさえあります;)

今日、メニューを作ってみたのですが、わからないことがあります。クラスの延長についてです。ガイドには次のように書かれています。

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

私が得られないポイントは、クラスを拡張する方法です... MainActivitySubActivityがあるとしましょう。両方のアクティビティで同じメニューを使用したいので、MainMenuActivityを作成します。このクラスを両方のアクティビティに拡張するにはどうすればよいですか?

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

4

2 に答える 2

19

それらの意味は次のとおりです。

通常、次のようになります。

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.


こちらもご覧ください。意味が説明されていextendsます。

于 2011-11-24T10:39:09.353 に答える
11

それは本当にとても簡単です。

MainMenuActivity

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

主な活動

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

サブアクティビティ

public class SubActivity extends MainMenuActivity {
   //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity.
}
于 2011-11-24T10:43:18.617 に答える