就是我想做一个最简单的带有子菜单的菜单项,在单击“菜单4”时显示三个子菜单,代码如下
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
menu.add("菜单1");
menu.add("菜单2");
menu.add("菜单3");
SubMenu submenu=menu.addSubMenu("菜单4");
submenu.setIcon(R.drawable.ic_launcher);
submenu.add("子菜单1");
submenu.add("子菜单2");
submenu.add("子菜单3");
return true;
}
但是单击菜单4之后没任何反应,想问下是为什么。

解决方案 »

  1.   

    你再onCreateOptionsMenu()方法中调用addMenu()这个方法,那menu这个传值传过来了没有,,,
      

  2.   

    你把这句话删了试试,getMenuInflater().inflate(R.menu.main, menu);如果还不行,我再帮你看看
      

  3.   

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    try {
    menu.add(0, 1, 1, R.string.menu_gengxin);
    menu.getItem(0).setIcon(R.drawable.gengxinmenu); menu.add(0, 2, 2, R.string.menu_shezhi);
    menu.getItem(1).setIcon(R.drawable.shezhi);

    menu.add(0, 3, 3, R.string.menu_tuijian);
    menu.getItem(2).setIcon(R.drawable.tuijianmenu);

    menu.add(0, 4, 4, R.string.menu_guanyu);
    menu.getItem(3).setIcon(R.drawable.guanyu);

    SubMenu submenu=menu.addSubMenu("菜单4");
    submenu.setIcon(R.drawable.ic_launcher);
    submenu.add("子菜单1");
    submenu.add("子菜单2");
    submenu.add("子菜单3");
    } catch (Exception e) { } catch (Throwable e) { } return super.onCreateOptionsMenu(menu);
    }这样是可以的
      

  4.   

    我这边按你的方式做了一下也是可以的啊,
    xml<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/grout_main">
        <item android:id="@+id/menu_1"
                    android:title="This 1"/>
        <item android:id="@+id/menu_2" 
                android:title="This 2" /> 
    </group>
    </menu>code
    public boolean onCreateOptionsMenu(Menu menu) {
    try {
     MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.testmenu, menu);



    SubMenu submenu=menu.addSubMenu("菜单4");
    submenu.setIcon(R.drawable.ic_launcher);
    submenu.add("子菜单1");
    submenu.add("子菜单2");
    submenu.add("子菜单3");
    } catch (Exception e) { } catch (Throwable e) { } return super.onCreateOptionsMenu(menu);
    }