2013-09-25 35 views
1

我在項目中使用ActionBarSherlock,有時需要在操作欄內添加一個或多個項目。將項目添加到操作欄(使用ActionBarSherlock)

在這個BaixadosFragment類(擴展SherlockFragment),我使用下面的代碼,它工作正常:

@Override 
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) 
{ 
    inflater.inflate(R.menu.main, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.refresh: 
      refresh(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

在這種情況下,我加入一個刷新按鈕,女巫裏面主要寂寞.xml

但是我想在CupomDetalheActivity上做同樣的事情(雖然增加了一個共享按鈕),女巫擴展了SherlockFragmentActivity。所以我不能越權「onCreateOptionsMenu」,因爲它有一個不同的簽名(如下圖):

//this is inside SherlockFragmentActivity 
public final boolean onCreateOptionsMenu(android.view.Menu menu) { 
    return true; 
} 
//this is inside SherlockFragment 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    //Nothing to see here. 
} 

蒙山SherlockFragmentActivity,我甚至不知道我在哪裏可以使用充氣彈出包含的XML分享按鈕... 我非常欣賞的任何想法和建議...

[編輯]這工作,根據DroidT的建議:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.share, menu); 
    super.onCreateOptionsMenu(menu); 
    return true; 
} 

回答

1

你SherlockFragmentActivity也有一個onCreateOptionsMenu()onPrepareOptionsMenu()。您可以使用getSupportMenuInflater()onCreateOptionsMenu()充氣菜單選項。只要您想要進行更改並在onPrepareOptionsMenu()中添加菜單選項,您就可以在SherlockFragmentActivity中撥打電話invalidateOptionsMenu()。有關更多信息,請參閱鏈接的「更改運行時菜單項」部分。

1

如果您使用的是片段的內部菜單,請確保您的片段調用setHasOptionsMenu(true);onCreate(Bundle savedInstance)方法

相關問題