我有一個類BaseFragment我是從如何創建動態菜單顯示在片段
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.main, menu);
this.menu = menu;
}
main.xml中創建一個私有的菜單和設置菜單我有:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Search/will display always -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"/>
<!-- Refresh -->
<item android:id="@+id/action_refresh"
android:icon="@drawable/ic_action_refresh"
android:title="@string/action_refresh"
android:showAsAction="ifRoom" />
<!-- Download -->
<item android:id="@+id/action_download"
android:icon="@drawable/ic_action_download"
android:title="@string/action_download"
android:showAsAction="never"/>
<!-- Favorite -->
<item android:id="@+id/action_favorites"
android:icon="@drawable/ic_action_favorites"
android:title="@string/action_favorites"
android:showAsAction="never" />
</menu>
和我有另一個片段FragmentA和FragmentB延伸到BaseFragment。 在FragmentA我想顯示所有菜單,並在運行應用程序時一切正常,但在FragmentB我想顯示下載和最喜歡的白板搜索和刷新。
我嘗試在基礎上創建一個方法來操縱menuitem上的可見性,我的菜單總是返回null。
protected void setSearchable(boolean isSearchable){
menu.findItem(R.id.action_search).setVisible(isSearchable);
}
protected void setHasRefreshFuction(boolean isHasRefreshFunction){
menu.findItem(R.id.action_refresh).setVisible(isHasRefreshFunction);
}
protected void setDownloadable(boolean isDownloadable){
menu.findItem(R.id.action_download).setVisible(isDownloadable);
}
protected void setFavorite(boolean isFavorite){
menu.findItem(R.id.action_favorites).setVisible(isFavorite);
}
我呼籲的onCreate()這個方法在FragmentB這樣的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setDownloadable(true);
setFavorite(true);
setHasRefreshFuction(false);
setSearchable(false);
}
有人可以幫我請....我是看了很多教程,並沒有找到一個答案,使這個。 注意:我是setHasOptionsMenu(true);在BaseFragment中創建
Thank's @ super-qua我有你的代碼的解決方案。我打電話: setDownloadable(true); setFavorite(true); setHasRefreshFuction(false); setSearchable(false);來自onCreateOptionsMenu重寫方法的 ,它運行良好 –