1

我一直在尝试将动态创建的菜单转换为 xml 菜单并让 ActionBarSherlock 正确膨胀它。我确实在操作栏上放了一些东西,所以我做对了。然而,结果非常奇怪。

我做错了什么还是这是一个错误?

这是我的 res/menu/editor.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@+id/menu_save" android:showAsAction="always|withText" android:title="Save" android:visible="true"/>

    <menu android:id="@+id/menu_para" android:showAsAction="always|withText" android:title="H" android:visible="true">
        <item android:id="@+id/para_h1" android:showAsAction="always|withText" android:title="H1" android:visible="true"/>
        <item android:id="@+id/para_h2" android:showAsAction="always|withText" android:title="H2" android:visible="true"/>
        <item android:id="@+id/para_h3" android:showAsAction="always|withText" android:title="H3" android:visible="true"/>
        <item android:id="@+id/para_h4" android:showAsAction="always|withText" android:title="H4" android:visible="true"/>
        <item android:id="@+id/para_h5" android:showAsAction="always|withText" android:title="H5" android:visible="true"/>
        <item android:id="@+id/para_text" android:showAsAction="always|withText" android:title="T" android:visible="true"/>
    </menu>
    <menu android:id="@+id/menu_bullets" android:showAsAction="always|withText" android:title="*1" android:visible="true">
        <item android:id="@+id/bullets_dots" android:showAsAction="always|withText" android:title="*" android:visible="true"/>
        <item android:id="@+id/bullets_numbers" android:showAsAction="always|withText" android:title="1" android:visible="true"/>
    </menu>
    <menu android:id="@+id/menu_em" android:showAsAction="always|withText" android:title="i-B" android:visible="true">
        <item android:id="@+id/em_italic" android:showAsAction="always|withText" android:title="i" android:visible="true"/>
        <item android:id="@+id/em_bold" android:showAsAction="always|withText" android:title="B" android:visible="true"/>
        <item android:id="@+id/em_both" android:showAsAction="always|withText" android:title="iB" android:visible="true"/>
    </menu>
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings">
    </item>

</menu>

这是我的 onCreateOptionsMenu

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        Log.i("MyApp", "About to run inflater");
        MenuInflater menuInflater = getSupportMenuInflater();
        menuInflater.inflate(R.menu.editor, menu);
        Log.i("MyApp", "Inflate done");

        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        Log.i("MyApp", "About to run inflater");
        MenuInflater menuInflater = getSupportMenuInflater();
        menuInflater.inflate(R.menu.editor, menu);
        Log.i("MyApp", "Inflate done");

        return super.onCreateOptionsMenu(menu);
    }

对于那些认为我没有先做研究的人,这里是我的进口

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.MenuInflater;

import android.os.Bundle;
import android.util.Log;

结果

原样

操作栏上可见的四个按钮

  • SAVE- 目前什么都不做
  • SAVE- 打开一个包含 H1、H2、H3、...、H6、T 的菜单
  • *- 什么都不做
  • 1- 什么都不做

如果我删除第一个 <item>,标题为“保存”的

两个按钮

  • *- 什么都不做
  • 1- 什么都不做

怪异

  • 只有一个 <item> 标题为“保存”。
  • 没有该SAVE项目,标题子菜单完全消失,并且它的标题是错误的。
  • *并且1应该在子菜单中。
4

0 回答 0