6

在参考了很多教程之后,我才知道,而不是Menu他们有ActionBarfor > API 10. 但我使用API 7sdk 进行测试,我曾经Menus使用drawable images. 但只有文本来了,可绘制的图标图像没有显示在菜单选项中。请帮我解决这个问题。

我的XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <!--
             Single menu item
             Set id, icon and Title for each menu item
    -->
    <item
        android:id="@+id/savedstory"
        android:background="#000000"
        android:minHeight="20dp"
        android:title="Saved Stories"/>
    <item
        android:id="@+id/setting"
        android:background="#000000"
        android:minHeight="20dp"
        android:title="Settings"/>
    <item
        android:id="@+id/Bookmark"
        android:background="#000000"
        android:minHeight="20dp"
        android:title="Bookmark This"/>
    <item
        android:id="@+id/share"
        android:background="#000000"
        android:minHeight="20dp"
        android:title="Share This"/>
    <item
        android:id="@+id/save"
        android:background="#000000"
        android:minHeight="20dp"
        android:title="Save This"/>
    <item
        android:id="@+id/small"
        android:icon="@drawable/font3"
        android:minHeight="20dp">
This icon is not showing.
            />
        <item
            android:id="@+id/medium"
            android:background="#ffffff"
            android:minHeight="20dp"
            android:title="Medium font"/>
        <item
            android:id="@+id/big"
            android:background="#000000"
            android:minHeight="20dp"
            android:title="Big font"/>
    </item>

</menu>

我的膨胀代码:

public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater menuInflater = getMenuInflater();
  menuInflater.inflate(R.menu.newsdescriptionmenu, menu);
  return true;
}
4

2 回答 2

2

如果您参考菜单文档

选项菜单:图标菜单不支持项目复选标记,仅显示项目的精简标题。扩展菜单(仅在六个或更多菜单项可见时可用,通过图标菜单中的“更多”项访问)不显示项目图标,并且不鼓励使用项目复选标记。

由于我看不到你如何膨胀(什么选项等)你的菜单,我只能假设你没有看到这个项目的图标,因为它是第六个项目,并在“更多”之后点击扩展菜单。

于 2013-01-03T11:56:23.137 回答
2

请检查以下代码片段。

菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/Menu1"
        android:orderInCategory="1"
        android:title="Menu 1"/>
    <item
        android:id="@+id/Menu2"
        android:orderInCategory="2"
        android:title="Menu 2"/>
    <item
        android:id="@+id/Menu3"
        android:orderInCategory="3"
        android:title="Menu 3"/>
    <item
        android:id="@+id/submenu"
        android:orderInCategory="4"
        android:title="Sub menu">
        <menu>
            <item
                android:id="@+id/submenu1"
                android:title="Sub menu 1"/>
            <item
                android:id="@+id/submenu2"
                android:title="Sub menu 2"/>
        </menu>
    </item>

</menu>

将这些行添加到您的Activity Class

public class MenuActivity extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }
  public boolean onCreateOptionsMenu(Menu menu) {
    new MenuInflater(getApplication()).inflate(R.menu.menu, menu);
    return(super.onPrepareOptionsMenu(menu));
  }

  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.Menu1:
      Toast.makeText(this, "Menu 1", Toast.LENGTH_SHORT).show();
    break;
    case R.id.Menu2:
      Toast.makeText(this, "Menu 2", Toast.LENGTH_SHORT).show();
    break;
    case R.id.Menu3:
      Toast.makeText(this, "Menu 3", Toast.LENGTH_SHORT).show();
    break;
    case R.id.submenu:
      Toast.makeText(this, "Sub menu", Toast.LENGTH_SHORT).show();
    break;
  }
  return(super.onOptionsItemSelected(item));
 }
}
于 2013-01-03T12:01:53.813 回答