2012-01-09 11 views
2

私は自分のアクティビティの5つの間で共有する必要がある、私のアプリにメニューバーを持っています。私のメニューバー(= 5つのボタンはアクティビティを切り替えることができます)はまったく同じUIと同じ動作をアクティビティに持ちますので、メニューバーのXMLビューコードとコントローラコードの両方を共有したいと思います。アクティビティ間のメニューバーの共有

Reusable UI Componentsを使用してXMLコードを共有する方法はすでに見つかりましたが、メニューバーのボタンのクリックを制御するコントローラコードを共有する方法が見つかりません。

注:私のメニューバーは、カスタムメイドのもので、Android Options Menuではありません。

ありがとうございます。

+0

を使用して、最善の解決策はFragmentsを使用することだと思いますだからこれを参照してください:http://stackoverflow.com/a/3611361/1023138 –

答えて

1

あなたは、単に実装あなたのメニューバーで一つの活性を取ることができ、その後、あなたはあなたの基本活動は、以下のように見えたと代わりにacivity

のあなたのそれぞれの活動を拡張するために、そのクラスを使用することができます。 BaseActivityアクティビティ

を拡張

これ以降、BaseActivityで5つのアクティビティをすべて拡張できます

+0

それは私が慣れた方法です。 – anticafe

+0

私はそれをしましたが、BaseActivityの 'setContentView()'にどのレイアウトを設定しましたか? – thomaus

+0

"Tab Group"を使用することは可能ですか – rajpara

0

独自のViewクラスを作成してみることをおすすめします。メニューバーのルートタグがRelativeLayoutであるとします。

public class MenubarView extends RelativeLayout { 
    public MenubarView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     // inflates menubar.xml into this view 
     // (note: menubar's root view should probably be a 'merge' tag) 
     LayoutInflater.from(context).inflate(R.layout.menubar, this); 
    } 

    // controller code 
} 

は、その後、あなたのXMLに、ちょうどそうのようなカスタムビューを埋め込む:

<LinearLayout 
    ... /> 

    <com.your.package.MenubarView 
     ... /> 

</LinearLayout> 
関連する問題