Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我动态创建菜单时,Android子菜单图标消失_Java_Android_Html_Android Layout_Android Studio - Fatal编程技术网

Java 当我动态创建菜单时,Android子菜单图标消失

Java 当我动态创建菜单时,Android子菜单图标消失,java,android,html,android-layout,android-studio,Java,Android,Html,Android Layout,Android Studio,我正在尝试动态创建菜单列表,我能够创建菜单选项,但每次运行代码时,主项的图标都会消失:以下是我的代码示例: private static final int SUB_Menu_ONE = R.menu.settings; private static final int SUB_Menu_TWO = R.menu.settings + 1; private static final int SUB_Menu_THREE= R.menu.settings + 2; priv

我正在尝试动态创建菜单列表,我能够创建菜单选项,但每次运行代码时,主项的图标都会消失:以下是我的代码示例:

private static final int SUB_Menu_ONE = R.menu.settings;
    private static final int SUB_Menu_TWO = R.menu.settings + 1;
    private static final int SUB_Menu_THREE= R.menu.settings + 2;
    private static final int SUB_Menu_FOUR = R.menu.settings + 3; 



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


    menu.clear();


       menu.add(0, SUB_Menu_ONE, Menu.NONE, "Sub Menu Item 0");
       menu.add(0, SUB_Menu_TWO, Menu.NONE, "Sub Menu Item 1");    
        menu.add(0, SUB_Menu_THREE, Menu.NONE, "Sub Menu Item 2");       
         menu.add(0, SUB_Menu_FOUR, Menu.NONE, "Sub Menu Item 3");

    return super.onCreateOptionsMenu(menu);

}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent inent;
    switch (item.getItemId()) {
        case SUB_Menu_ONE:
//doStuff(); 打破 案例子菜单二: //doStuff(); 打破 案例子菜单三: //doStuff(); 打破 案例子菜单四: //doStuff(); 打破 违约: //如果我们到了这里,用户的行为就不会被识别。 //调用超类来处理它。 返回super.onOptionsItemSelected(项目)

这是我的菜单设置的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"
    xmlns:compat="http://schemas.android.com/tools">
    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings_title"
        android:icon="@drawable/cuslistticketbutton"
        app:showAsAction="always|withText"
        android:actionLayout="@layout/custabview"
        compat:showAsAction="ifRoom"
        >
                <!--<menu>-->
                    <!--<item-->
                        <!--android:id="@+id/menu_addticket"-->
                        <!--android:showAsAction="never"-->
                        <!--android:icon="@drawable/add_tickets"-->
                        <!--android:title=""-->
                        <!--compat:ignore="AppCompatResource,HardcodedText" />-->

                <!--</menu>-->

</item>


</menu>


欢迎提供任何帮助

您必须以编程方式设置图标

   menu.add(0, SUB_Menu_ONE, Menu.NONE, "PREMIUM (Live Video & Audio)").setIcon(R.drawable.icon);

我已经尝试了前面的代码,但是图标仍然没有显示,我已经尝试了我知道的所有技巧,但是仍然是零@Dinesh BobYou应该调用super.onPrepareOptionsMenu();内部OnPrepareOptions功能表。不是超级。onCreateOptions菜单();你能把onPrepareOptions功能表()中的所有代码移到onCreateOptions功能表()中,然后再试一次吗?是的,我已经试过了,但仍然无法工作bro@Dinesh Bobi刚刚编辑了我的问题,添加了我的功能表XML设置项
   menu.add(0, SUB_Menu_ONE, Menu.NONE, "PREMIUM (Live Video & Audio)").setIcon(R.drawable.icon);