2014-12-03 62 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); 
}