2013-07-03 45 views
0

我相對較新的行動酒吧,我​​使用actionBarSherlock庫。 我知道,當您的行爲經常發生並且易於訪問時,actionbar的工作效果最佳。是否可以從單獨的片段中操作動作欄?

背景:

我動作條目前工作原理是讓主按鈕和onCreateOptionsMenu那膨脹的菜單與日曆菜單項(不可見)和設置菜單項。

我有一個主要的活動,調用像FragA,FragB,FragC多個片段。

問:

是否有可能以某種方式操縱我的菜單項我的片段,或者當他們即將以這樣的方式被調用,至少我能「秀」的日曆菜單項並處理對它的調用?

這是我到目前爲止有:actionbar_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="30dp" 
android:orientation="horizontal" > 
<Button 
    android:id="@+id/b1" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:text="Stuff" /> 
</LinearLayout> 

下面是我如何使用爲homeButton:

public void onResume() 
{ 
    super.onResume(); 

    actionBar = getSupportActionBar(); 
    actionBar.setHomeButtonEnabled(true); 
    actionBar.setIcon(R.drawable.icon_tsn);... 
} 

我想只是延伸SherlockFragment .. 工作片段任何幫助表示讚賞...

+2

你的行動項目必須有標題設置'機器人:標題=「」' – Neoh

回答

1

是我可能以某種方式操作我的片段中的菜單項,或者至少在他們即將以這種方式調用時,我可以「顯示」日曆菜單項並處理對它的調用?

你的片段歡迎來電setHasOptionsMenu(true)(例如,來自onCreateView()),點它會與onCreateOptionsMenu()onOptionsItemSelected()被稱爲在其中,就像活動。如果片段可見,其操作欄項目將出現,否則它們將被刪除。

因此,典型的模式是讓活動定義有效的操作欄項目,無論哪些片段可見,並讓片段定義特定於它們的操作欄項目。

+0

CommonsWare嗨, 我想你建議,但我在com.android.internal.view.menu.MenuItemImpl.toString得到一個NullPointerException( MenuItemImpl.java:496)。你知道爲什麼會發生這種情況嗎? – ryvianstyron

+0

使用這個https://github.com/JakeWharton/ActionBarSherlock/issues/902(確切的錯誤我得到),我剛剛註釋掉引起崩潰的日誌。但現在我沒有任何事情發生時,當我點擊圖標... – ryvianstyron

+0

@AminaKhalique:正如在這個問題上指出的,正如Neoh在其他地方的評論中提到的,您的菜單資源中的''元素需要一個'android:title '屬性,即使你不使用標題。 – CommonsWare