【问题标题】:Creating an Options Menu not working for me创建选项菜单对我不起作用
【发布时间】:2014-10-02 23:57:49
【问题描述】:

按照http://developer.android.com/guide/topics/ui/menus.html 的说明,我尝试通过首先创建一个 xml 来将选项菜单添加到我现有的活动中

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
          android:icon="@drawable/ic_new_game"
          android:title="@string/new_game"
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/help"
          android:icon="@drawable/ic_help"
          android:title="@string/help" />
</menu>

然后将活动中的菜单膨胀为

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

显然这还不够。那么我在代码中遗漏了什么?我正在使用三星 S5 进行测试。

我的活动extends FragmentActivity,以防万一。

【问题讨论】:

  • 你试过按S5的菜单键吗?尝试按多任务键。按住它直到,看看菜单是否弹出。

标签: android android-layout menu


【解决方案1】:

问题可能出在您的活动使用的主题上。尝试使用其中包含操作栏的主题。我想,Theme.Holo.ActionBar。

【讨论】:

    【解决方案2】:

    我确定菜单在那里,但您不能只看到它。上面的代码,据我所知,没有问题。问题可能出在带有菜单键的手机和没有菜单键的手机上。关于hereherehere,还有here,已经进行了无数次讨论。人们用来在操作栏溢出中强制他们的菜单选项的黑客之一是

    try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            if(menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            // Ignore
        }
    

    把上面的代码放在你的应用类的onCreate()中。您正在使用 S5,因此请尝试长按多任务键。这将启用menu options in S5

    【讨论】:

    • Field属于什么库?
    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2013-10-29
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多