http://i1254.photobucket.com/albums/hh620/Mike_Mccone/menu.png
我有一个上面链接的菜单,我想出现在我的所有活动中。我显然可以在我的每个活动布局中包含菜单的 xml,并在每个活动中编写我的侦听器,但我宁愿不必对所有 15 个左右的活动都这样做。
我尝试创建和扩展自定义基础活动,但无济于事,因为我无法为每个活动设置不同的布局。
在不使用标签的情况下实现这样的菜单的最佳方法是什么?
http://i1254.photobucket.com/albums/hh620/Mike_Mccone/menu.png
我有一个上面链接的菜单,我想出现在我的所有活动中。我显然可以在我的每个活动布局中包含菜单的 xml,并在每个活动中编写我的侦听器,但我宁愿不必对所有 15 个左右的活动都这样做。
我尝试创建和扩展自定义基础活动,但无济于事,因为我无法为每个活动设置不同的布局。
在不使用标签的情况下实现这样的菜单的最佳方法是什么?
除了使用 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
,以便它将内容设置在空布局内。
然后将您的活动基于此类并照常使用。也许添加菜单按钮处理。