Клавиша меню не работает в 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;
}

person EasyasPi    schedule 03.12.2014    source источник


Ответы (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);
}
person EasyasPi    schedule 05.12.2014