0

我正在为设备 2.1 Eclair -> 3.0 Honeycomb 开发 Android 应用程序。我现在开始创建用户设置区域。我遇到了菜单和操作栏项目的障碍。

我创建了一个菜单 xml 资源,其中包含我的项目和图标,然后我将其连接到 java 中:

我在已有的基础上添加了这些导入:

import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

然后我的活动中的这段代码就像Android 开发者网站所说的那样:

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menuItem_Help:
        helpDialogGo();
        return true;
    case R.id.menuItem_Settings:
        settingsActivityGo();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

(这是我添加的所有内容,因为它工作正常。我什至评论了所有这些新东西,它又开始在 Honeycomb 上工作。)

当我在 Froyo 上对其进行测试时,这很有效 - 菜单出现了应有的标题和图标,但是当我尝试在我的 Honeycomb 平板电脑上启动该应用程序时,它强制关闭,甚至一秒钟都没有显示该应用程序。

其他一些可能相关的代码:

从 androidmanifest.xml 中提取

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="11" />

像素应用菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:title="Help"
        android:id="@+id/menuItem_Help"/>
    <item
        android:title="Settings"
    android:id="@+id/menuItem_Settings"
    android:onClick="onMenuItemClick_Settings"/>
</menu>
4

1 回答 1

0

我找到了解决办法。

在菜单 xml 文件(res/menu/mymenu.xml - 或任何您称为文件的文件)中,您需要声明允许菜单项位​​于 ActionBar 上。您可以通过放置

android:showAsAction="ifRoom|withText"

在您的 XML 中的项目中。

示例代码在这里:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:title="Help"
    android:id="@+id/menuItem_Help"
    android:showAsAction="ifRoom|withText"/>
<item
    android:title="Settings"
    android:id="@+id/menuItem_Settings"
    android:showAsAction="ifRoom|withText"/>
</menu>
于 2011-07-03T23:47:00.997 回答