2014-08-31 45 views
1

我有一个操作栏,我不明白为什么使用此代码操作栏内的菜单项不显示。项目没有显示在操作栏上

main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.foo.activity" > 

    <item 
     android:id="@+id/button1" 
     android:icon="@drawable/button1" 
     android:onClick="clickEvent" 
     android:showAsAction="ifRoom|withText" 
     android:title="@string/button1"> 
     <item 
      android:id="@+id/log_out" 
      android:orderInCategory="100" 
      android:showAsAction="never" 
      android:title="@string/log_out"/> 
    </item> 

</menu> 

// create action bar menu 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

它alwasy显示此:

enter image description here

在此先感谢。

+0

为什么把项目放入另一个项目???改变android:showAsAction =“ifRoom | withText”to android:showAsAction =“always” – MHP 2014-08-31 07:55:58

+0

@MHP用你的建议我在'onCreateOptionMenu'上得到'inflateException' – 2014-08-31 07:59:21

+1

以下答案是真的,你有错误,因为你忘了把/>项目结束 – MHP 2014-08-31 08:09:32

回答

1

尝试将项目分开,因为item不允许在另一个item之内。

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.foo.activity"> 

    <item 
     android:id="@+id/button1" 
     android:icon="@drawable/button1" 
     android:onClick="clickEvent" 
     android:showAsAction="always" 
     android:title="@string/button1"/> 
    <item 
     android:id="@+id/log_out" 
     android:orderInCategory="100" 
     android:showAsAction="never" 
     android:title="@string/log_out"/> 

</menu> 
+0

感谢您的评论,但在XML内我不能这样做,因为它对我说'XML文件中的错误:中止生成。'我已经在末尾插入'''文件。 – 2014-08-31 08:04:27

+0

@YokupokuMaioku如果item元素没有子元素(它不能使用)使用'/>'与''相同。确保你输入正确,就像我的例子。 – Simas 2014-08-31 08:07:04

+0

好吧,我忘记了,'/'在firt项目,分心错误,无论如何感谢。 – 2014-08-31 08:09:23