菜单键在AppCompat中不起作用

时间:2014-12-03 17:54:04

标签: android android-appcompat

我一直在将Material移植到开源应用程序中。我使用过AppCompat v21库。我点击菜单键,什么都没得到。其他一切都有效。

我做错了什么?我将在以后通过手机发送此代码时附上代码。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/action_view_source" android:title="@string/action_view_source"  />
    <item android:id="@+id/action_view_translation" android:title="@string/action_view_translation" yourapp:showAsAction="never" />
    <item android:id="@+id/action_view_bugs" android:title="@string/action_view_bugs" yourapp:showAsAction="never"  />
</menu>

爪哇

 public class MainActivity extends ActionBarActivity
  …
 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

1 个答案:

答案 0 :(得分:1)

没关系,我明白了。似乎在新的AppCompat中禁用了菜单键。我实际上找到了解决问题的方法,我想我会与你分享。

public class MainActivity extends ActionBarActivity {
private Toolbar toolbar;

@Override
public void onCreate(Bundle icicle){
...
setContentView(R.layout.main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
...
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        if (toolbar.isOverflowMenuShowing()) {
            toolbar.dismissPopupMenus();
        } else {
            toolbar.showOverflowMenu();
        }
        return true;
    }
    return super.onKeyUp(keyCode, event);
}
相关问题