有没有办法设置操作栏按钮的可见性?

时间:2013-07-10 13:43:55

标签: android android-actionbar

所以我有两个活动.ActivityA和AcitivityB。我的操作栏中有4个按钮,但在ActivityA中只有三个应该是可见的,如果我按下某个按钮,我进入ActivityB并且所有四个都应该可见。 有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

出于这样的目的,我建议你创建特殊的类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(this,false);

答案 1 :(得分:0)

您是否可以在每个活动onCreateOptionsMenu?

中为单独的菜单资源充气
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;
    }
}

答案 2 :(得分:0)

在相应活动的onCreate方法中,您可以将setVisibility调用到所需按钮以隐藏它。