2013-03-02 51 views
0

我需要對Fragment中的活動ActionBar進行兩項較小的更改。從碎片中更改ActionBar

父級FragmentActivity的onCreateOptionMenuonPrepareOptions處理跨應用程序的菜單。

但是,在包含的主Fragment視圖中,爲了導航的目的,我想要改變標題ActionBarFragment每次更改。

另外,在一個實例中,我想添加布局中定義的單個菜單項。我寧願不重複這部分代碼,我是否需要override相同的方法並重新設置整個菜單,包括onOptionSelected?要麼...?

編輯:

在我的菜單xml佈局,我有這樣的項目:

<item 
     android:id="@+id/Add" 
     android:title="Add Items"/> 

此產品需要在ActionBar要看到的只是一個特定Fragment。菜單的其餘部分與應用程序其餘部分應該看到的內容完全相同。在我需要這個新項目的片段中,是否還必須重複onCreateOptionsMenu,onPrepareOptionsMenuonOptionsItemSelected並複製其他菜單項?或者我可以overrideFragment那些只是彈出一個額外的菜單項?

回答

0

該回答什麼,我需要爲第2部分

在把這個onAct ivityCreated:

setHasOptionsMenu(true); 

,然後加入這個太:

@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     super.onPrepareOptionsMenu(menu); 

     ActivityCompat.invalidateOptionsMenu(getActivity()); 

     MenuItem Add = menu.findItem(R.id.Add); 
     Add.setVisible(true); 


    } 

父活動設置R.id.Add默認爲不可見。

1

1.

getActivity().getActionBar().setTitle(); 

getActivity.getSupportActionBar().setTitle(); 
  1. 更多的說明,請:)
+0

爲你增加了一些更多的信息.​​.....我會嘗試這第一部分和測試。 – KickingLettuce 2013-03-02 22:32:17

+0

是的,在onActivityCreated()中。關於菜單 - 我不知道答案,你可以嘗試檢查一下自己;) – agamov 2013-03-02 22:36:37