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);