2017-06-11 123 views
-4

我打算在inflate菜单中输入我的第一个Activity无法充气菜单

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

的R.menu.main:

<item 
    android:id="@+id/action_serach" 
    android:title="Search" 
    android:orderInCategory="100" 
    android:icon="@drawable/ic_search" 
    app:showAsAction="ifRoom" /> 

它不工作,但它膨胀命名R.menu.menu_home的另一个XML文件。 的R.menu.menu_home:

<menu 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
android:id="@+id/action_star" 
android:title="Search" 
android:orderInCategory="100" 
android:icon="@drawable/ic_star_half" 
app:showAsAction="ifRoom" 
    /> 
</menu> 

但在我的第二Activity,它的工作原理,无论是R.menu.mainR.menu.menu_home。 为什么?

回答

0

我有,因为我与所述活性的片段和onCreateOptionsMenu()方法是在该片段取代的FrameLayout解决这个problem.It的。

1

我认为问题在于你必须重写类方法,所以在之前添加@OverrideHere你可以获得更多关于Override注释的信息。

+0

它确实有@Override以前它不起作用:( – zhan

+0

如果你改变菜单的名称,或者如果你创建一个新的xml菜单文件具有相同的内容? –

+0

当我更改名称该菜单或创建一个新的XML文件具有相同的内容,它仍然膨胀的预览XML文件。 – zhan

-2

使用此代码。

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