创建一个不适合我的选项菜单

时间:2014-10-01 16:06:05

标签: android android-layout menu

按照http://developer.android.com/guide/topics/ui/menus.html的说明操作,我首先尝试创建一个xml

,为现有的Activity添加一个选项菜单
<?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,如果重要的话。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我确定菜单在那里,但你无法看到它。据我所知,上面的代码没有问题。问题可能出在带有菜单键的手机和没有菜单键的手机上。对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