我一直在将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;
}

最佳答案

没关系,我知道了。看来在新的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);
}

08-15 21:08