2010-12-28 5 views
5

私のアプリにはいくつかのアクティビティがあります。私は、私の活動が同じメニューアイテムを持つことを望んでいます。私は、個々のアクティビティごとにメニュー項目をコピーして貼り付けるのではなく、選択したすべてのアクティビティにメニュー項目を入れる簡単な方法があるのだろうかと思っていましたか?基本的には、選択されたアクティビティとメニューアイテムを共有したいと思います。Android:いくつかのアクティビティを表示するメニュー

おかげで、

答えて

10

は、活動を拡張し、このクラスを拡張して、すべての他の活動を作成したクラス(たとえばクラスA)を作成します。今では、共通のメニュー項目をベクトルに保存し、特定のアクティビティーに対して特定のメニューアクションを追加することができます。これにより、すべてのアクティビティでメニュー項目をコピーして貼り付ける手間を省くことができます。

+0

ありがとうございました!それはうまくいきましたが、すべてのクラスがActivityを拡張しているわけではなく、ListActivityを拡張していて、そのクラスに直接依存していたものもありました。 – user522559

+1

listactivityではなくlistviewを使用してみましょう。 listviewはすべてのlistactivityが提供するものを提供します。あなたのアクティビティのメンバー変数としてlistviewを作成し、それを使用するだけです – pankajagarwal

1

MVCの背後にある一般的な考え方です。同じモデル(メニューデータ)でさまざまなビュー(アクティビティ)を表示できます。

これらのメニューを動的にロードする場合は、メニューデータを使用してシングルトンクラスを作成し、そこから取得します。

これらのメニューがすでにxxx.xmlに定義されている場合は、新しいmenu.xml(たとえば)を作成してメニューの説明を抽出する必要があります。次に、そのメニューを必要とするすべてのアクティビティレイアウトに含める。

また、常にmenu.xmlを動的に膨張させることもできます。