Android 有没有办法设置actionbar按钮的可见性?
所以我有两个活动。活动A和活动B。我的actionbar中有四个按钮,但在ActivityA中只有三个按钮是可见的,如果我按下某个按钮,我进入ActivityB,四个按钮都应该是可见的。Android 有没有办法设置actionbar按钮的可见性?,android,android-actionbar,Android,Android Actionbar,所以我有两个活动。活动A和活动B。我的actionbar中有四个按钮,但在ActivityA中只有三个按钮是可见的,如果我按下某个按钮,我进入ActivityB,四个按钮都应该是可见的。 有什么方法可以做到这一点吗?你能在创建选项菜单的每个活动中单独增加一个菜单资源吗 class ActivityA extends Activity { /**Code omitted*/ @Override public boolean onCreateOptionsMenu(Menu
有什么方法可以做到这一点吗?你能在创建选项菜单的每个活动中单独增加一个菜单资源吗
class ActivityA extends Activity {
/**Code omitted*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activityA, menu);
return true;
}
}
class ActivityB extends Activity {
/**Code omitted*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activityB, menu);
return true;
}
}
为此,我建议您创建一个特殊的类ActionBarHelper,在这个类中,您可以加入所有ActionBar初始化步骤。在我使用ActionbarSherlock的应用程序中,我在ActionBarHelper类代码中这样做:
public static void initActionBar(final SherlockActivity activity, final boolean finishCurrent) {
activity.setTheme(R.style.Sherlock___Theme_Light);
theBar = activity.getSupportActionBar();
theBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
theBar.setCustomView(R.layout.custom_bar);
// other initialisation
然后
Button btnToHide = (Button) activity.findViewById(R.id.btnToHide);
if (activity.getLocalClassName().toString().equals("ActivityA")) {
btnToHide.setVisibility(View.GONE);
}`
在您的活动中,
OnCreate()
只需编写ActionBarHelper.initActionBar(这个,false)代码>在相应活动的onCreate方法中,您可以调用所需按钮的setVisibility来隐藏它。您可以通过菜单项实例上的setVisibility来设置可见性。