【问题标题】:Honeycomb ActionBar Items - Crashing AppHoneycomb ActionBar 项目 - 崩溃的应用程序
【发布时间】:2011-07-03 09:06:09
【问题描述】:

我正在为 2.1 Eclair -> 3.0 Honeycomb 设备开发 Android 应用程序。我现在开始创建用户设置区域。我遇到了 Menu & ActionBar Items 的问题。

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

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

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

然后这个代码在我的活动中作为Android Developers site said to:

@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" />

pixelappmenu.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>

【问题讨论】:

  • 你在 logcat 中有什么消息吗?
  • @rabs83:尝试摆脱android:onClick 属性——你没有使用它,而且我不认为它经常被使用,所以这可能是你困难的根源。除此之外,正如@Gregory 建议的那样,在 Eclipse 中使用adb logcat、DDMS 或 DDMS 透视图来检查 LogCat 并查看与“强制关闭”相关的堆栈跟踪。
  • @CommonsWare,我已经这样做了,它不会导致问题。感谢您的帮助。
  • @rabs83:然后使用 adb logcat、DDMS 或 Eclipse 中的 DDMS 透视图检查 LogCat 并查看与“强制关闭”相关的堆栈跟踪。
  • 我已经解决了我的问题,我只需要等到明天回答我自己的问题,因为我的代表

标签: android menu crash menuitem android-actionbar


【解决方案1】:

我找到了解决办法。

在菜单 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>

【讨论】:

  • 另外,如果您只想显示文本,请将其设置为“ifRoom”,如果您希望它显示在溢出菜单中,则可以将其设置为“从不”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多