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