Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有办法设置actionbar按钮的可见性?_Android_Android Actionbar - Fatal编程技术网

Android 有没有办法设置actionbar按钮的可见性?

Android 有没有办法设置actionbar按钮的可见性?,android,android-actionbar,Android,Android Actionbar,所以我有两个活动。活动A和活动B。我的actionbar中有四个按钮,但在ActivityA中只有三个按钮是可见的,如果我按下某个按钮,我进入ActivityB,四个按钮都应该是可见的。 有什么方法可以做到这一点吗?你能在创建选项菜单的每个活动中单独增加一个菜单资源吗 class ActivityA extends Activity { /**Code omitted*/ @Override public boolean onCreateOptionsMenu(Menu

所以我有两个活动。活动A和活动B。我的actionbar中有四个按钮,但在ActivityA中只有三个按钮是可见的,如果我按下某个按钮,我进入ActivityB,四个按钮都应该是可见的。
有什么方法可以做到这一点吗?

你能在创建选项菜单的每个活动中单独增加一个菜单资源吗

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来设置可见性。