android中的菜单选项

时间:2013-01-03 11:45:46

标签: android

在参考了很多教程之后,我开始知道Menu而不是ActionBar > API 10 API 7。但我使用Menus sdk进行测试,我使用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;
}

我的充气代码:

{{1}}

2 个答案:

答案 0 :(得分:2)

如果您参考Menu documentation

  

选项菜单:图标菜单不支持项目复选标记   显示项目的简明标题。扩展菜单(仅限可用   如果可以看到六个或更多菜单项,请通过“更多”项目到达   图标菜单)不显示项目图标,项目复选标记为   气馁。

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

答案 1 :(得分:2)

请检查以下代码段。

menu.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));
 }
}