2014-08-31 56 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