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 回答