2

http://i1254.photobucket.com/albums/hh620/Mike_Mccone/menu.png

上にリンクされているメニューがあり、すべてのアクティビティに表示したいと思います。明らかに、各アクティビティレイアウトにメニューのxmlを含め、すべてのアクティビティにリスナーをコーディングできますが、15ほどのアクティビティすべてにそれを行う必要はありません。

カスタムベースアクティビティを作成して拡張しようとしましたが、アクティビティごとに異なるレイアウトを設定できなかったため、無駄になりました。

タブを使用せずにこのようなメニューを実装するための最良の方法は何ですか?

4

1 に答える 1

0

FragmentsまたはActionbar(Sherlock)を使用する以外に、おそらく次のようにすることができます。

public class MenuActivity extends Activity {
    private FrameLayout mContainer;
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // Layout that has menu on top and an empty
        // FrameLayout below
        setContentView(R.layout.main);
        mContainer = (FrameLayout) findViewById(R.id.frame_layout);
        // add click listeners to menu and let them call
        // onMenuItemClicked() or whatever you wish to do
    }

    @Override
    public void setContentView(View view) {
        mContainer.removeAllViews();
        mContainer.addView(view);
    }

    protected void onMenuItemClicked(){ /* or abstract */ }
}

上部にメニューを含み、下部に空の何かを含むレイアウトを設定し(たとえば) 、空のレイアウト内にコンテンツを設定するようにFrameLayoutオーバーライドします。setContentView

次に、このクラスに基づいてアクティビティを行い、通常どおりに使用します。たぶんメニューボタンの処理を追加します。

于 2012-04-29T19:22:16.600 に答える