2014-12-03 37 views
1

我一直在将材料移植到开源应用程序。我使用了AppCompat v21库。我按了菜单键,什么也没有。其他一切正常。菜单键不起作用于AppCompat

我在做什么错?稍后我会通过手机发送该代码。

<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> 

的Java

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

没关系,我理解了它。看起来菜单键在新的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); 
}