0

だから私は2つの活動を持っています.ActivityAとAcitivityB. アクションバーには 4 つのボタンがありますが、ActivityA では 3 つしか表示されないはずです。特定のボタンを押すと、ActivityB に入り、4 つすべてが表示されるはずです。これを行う方法はありますか?

4

3 に答える 3

1

このような目的のために、すべての ActionBar 初期化ステップをカプセル化する特別なクラス ActionBarHelper を作成することをお勧めします。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);

于 2013-07-10T13:51:40.813 に答える
0

対応するアクティビティの onCreate メソッドで、目的のボタンに setVisibility を呼び出して非表示にすることができます。

于 2013-07-10T13:56:23.310 に答える
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;
    }
}
于 2013-07-10T13:48:13.137 に答える