2013-10-08 3 views
2

У меня проблема с тем, что мое приложение не отображает меню параметров, когда я нажимаю кнопку меню. Отладка показывает, что метод onCreateOptionsMenu (меню) не вызывается после нажатия кнопки меню. У меня есть другое приложение с тем же кодом для меню и там оно работает. Так что теперь мой код:Android onCreateOptionsMenu не вызывается при нажатии кнопки меню

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.app_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.options: 
      Intent intent = new Intent(this, OptionsActivity.class); 
      startActivityForResult(intent, 1); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 

} 

В рес -> Меню -> app_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/options" android:title="@string/options" /> 
</menu> 

Я понятия не имею, почему onCreateOptionsMenu не вызывается после нажатия кнопки меню. Надеюсь, вы, ребята, можете мне помочь.

Редактировать: Я не использую фрагменты, а onCreateOptionsMenu на самом деле никогда не называется. Не в начале приложения, а не когда я нажимаю кнопку меню на своем устройстве.

ответ

1

Попробуйте добавить эти атрибуты элемента в вашем app_menu.xml файле:

<item 
    android:id="@+id/options" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/options"/> 

Вы должны объявить строку для options в strings.xml

+0

Не работает для меня, и у меня есть строка для опций в strings.xml ;) –

+0

Объявили ли вы эту активность в файле 'manifest.xml'? – AimanB

1

Он позвонит, когда приложение запускается в первый раз не после того, как меню выбранный элемент.

@Override 
    public boolean onMenuItemSelected(int featureId, MenuItem item) { 
if (item.getItemId() == R.id.menuitem_id) { 
} 
return super.onMenuItemSelected(featureId, item); 
} 

этот метод будет вызываться после выбора

+0

My onCreateOptionsMenu никогда не вызывается, а не в начале, а не когда я нажимаю кнопку меню на своем устройстве. Но в другом приложении с тем же кодом он работает. –

2

Не уверен, что из вашего поста, который вы используете фрагменты. Если да, то вы должны установить опции меню на по

setHasOptionMenu(true); 

называют этот метод из OnCreate фрагмента() и меню опций будут отображаться.

+0

Я не использую Фрагменты, у меня есть код в TabActivity. –

-1

В файле манифеста просто набор целевых версий, как показано ниже: андроида: minSdkVersion = «8» Android: targetSdkVersion = «10»

Смежные вопросы