1

我对Java编程和Android Studio非常新颖。 在创建选项菜单时,我在主菜单中创建了一个选项列表,其中两个项目在组子菜单中。Action Bar菜单项复制运行

这是我menu.xml文件

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    > 
    <item 
     android:id="@+id/giveup_setting" 
     android:orderInCategory="1" 
     app:showAsAction="ifRoom" 
     android:title="@string/action_option1"/> 
    <item 
     android:id="@+id/new_game_setting" 
     android:orderInCategory="2" 
     app:showAsAction="never" 
     android:title="@string/action_option2"/> 
    <item 
     android:id="@+id/help_setting" 
     android:orderInCategory="3" 
     app:showAsAction="never" 
     android:title="@string/action_option3"/> 

    <item 
     android:id="@+id/settings_setting" 
     android:orderInCategory="4" 
     app:showAsAction="never" 
     android:title="@string/action_option4" /> 
    <menu> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/menu_color" 
      android:orderInCategory="1" 
      app:showAsAction="never" 
      android:title="@string/layout_color"/> 
     <item 
      android:id="@+id/menu_text" 
      android:orderInCategory="2" 
      app:showAsAction="never" 
      android:title="@string/layout_text"/> 
    </group> 
    </menu> 
    <item 
     android:id="@+id/about_setting" 
     android:orderInCategory="5" 
     app:showAsAction="never" 
     android:title="@string/action_option5"/> 
    <item 
     android:id="@+id/exit_setting" 
     android:orderInCategory="6" 
     app:showAsAction="never" 
     android:title="@string/action_option6"/> 

</menu> 

的我这是怎么吹的菜单在我的MainActivity:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     menu.clear(); 
     getMenuInflater().inflate(R.menu.menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem menu) { 
     // Handle item selection 
     switch (menu.getItemId()) { 
      case R.id.help_setting: 
       //show help screens 

      return true; 

      case R.id.menu_color: 
       //change a layout of my main activity 
      return true; 

      case R.id.menu_text: 
        //change another layout of my main activity 
      return true;*/ 

      case R.id.about_setting: 
        //show my about screen 
      return true; 

      case R.id.giveup_setting: 
       //resets the game 

      case R.id.new_game_setting: 
       //restarts the app 
       return true; 

      case R.id.exit_setting: 
       //exits the app 
       return true; 
      default: 
       return super.onOptionsItemSelected(menu); 
     } 

} 

在运行的应用程序,菜单填充但“设置”项(具有嵌套组单选按钮)显示两次。

On running the app, the menu populates but the "Settings" item (which has the nested group radio buttons) displays twice.

我在做什么错?

回答

0

如果android:id="@+id/settings_setting"是你想要有一个子菜单的人不要关闭item tag。相反,在<item>标记内部将<menu>夸大。

<item 
    android:id="@+id/settings_setting" 
    android:orderInCategory="4" 
    app:showAsAction="never" 
    android:title="@string/action_option4"> 
    <menu> 
    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/menu_color" 
      android:orderInCategory="1" 
      app:showAsAction="never" 
      android:title="@string/layout_color"/> 
     <item 
      android:id="@+id/menu_text" 
      android:orderInCategory="2" 
      app:showAsAction="never" 
      android:title="@string/layout_text"/> 
    </group> 
    </menu> 
</item> 
+0

谢谢!完美工作。我永远都不会知道我自己! :) –