安卓菜单选项未出现在Android 4.4中

时间:2014-01-24 08:52:11

标签: android

我的应用程序中有一个选项菜单,我已经测试过在Android 4.0上运行。 代码如下所示:

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

    /**
     * Event Handling for Individual menu item selected
     * Identify single menu item by it's id
     * */
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {

        switch (item.getItemId())
        {

        case R.id.menu_share:

             //code to do something when chosen etc


            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    } 

现在如果我在Android 4.4上运行相同的代码(我在Moto G上测试过),则选项菜单不会出现。

由于设备上没有Android菜单按钮,我知道必须做什么吗?

2 个答案:

答案 0 :(得分:0)

如果要强制应用程序显示操作溢出:

,请将其放在活动类中
    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
    }

阅读本http://developer.android.com/design/patterns/compatibility.html

操作栏中的操作溢出可以访问应用程序不常使用的操作。溢出图标仅出现在没有菜单硬件键的手机上。当用户按下键时,带有菜单键的电话会显示操作溢出。

答案 1 :(得分:-1)

良好的做法是打电话给超级班:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.layout.menu, menu);
    return super.onCreateOptionsMenu(menu);
}

您没有看到菜单的原因可能是设备有硬件菜单按钮,必须按此按钮才能显示选项菜单。

您使用的是模拟器吗?这是什么设置?