0

当我在 avd 模拟器上执行应用程序时,菜单在操作栏上,但是当它在真实设备上执行时,我必须点击选项按钮来设置菜单。这段代码有问题吗?

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.android.was4fi.MainActivity" >

<item
   android:id="@+id/op1"
   android:showAsAction="never"
   android:title="@string/comite"/>
<item
  android:id="@+id/op2"
  android:showAsAction="never"
  android:title="@string/programa" />
<item
  android:id="@+id/op3"
  android:showAsAction="never"
  android:title="@string/fechas" />
<item
 android:id="@+id/op4"
 android:showAsAction="never"
 android:title="@string/localizacion" />
 </menu>
4

1 回答 1

0

正如我几天前在这里提到的那样,溢出图标在具有硬件菜单按钮的设备上不可见。要启用动作溢出图标,您可以在应用程序中执行一个肮脏的 hack。

private void getOverflowMenu() {

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

application在你的类中调用上述方法onCreate()

于 2014-12-09T16:29:00.423 回答