2013-03-14 5 views
3

Я пытаюсь реализовать меню опций в приложении Android 2.3 с помощью ActionBarSherlock. Но это не display.Here простой файл макета XML «breadcrumb_bar_menu» для меню опций:Невозможно создать меню опций в ActionBarSherlock

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

<item android:id="@+id/sent" 
     android:icon="@drawable/topbar_sent"  
     android:title="@string/about" />  
    </menu> 

А вот моя деятельность в наследство от SherlockActivity:

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.breadcrumb_bar_menu, menu); 
    return true; 
} 

Но я не могу видеть меню параметров в действии. Что я делаю неправильно?

+0

На какую версию ОС Android вы тестируете приложение? У него есть кнопка меню оборудования? –

+0

@ShajeelAfzal Пожалуйста, внимательно прочитайте мой вопрос. Я сказал о версии. – MainstreamDeveloper00

ответ

3

Включите в ваше меню атрибут элемента xml android:showAsAction="ifRoom".

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/inbox" 
     android:showAsAction="ifRoom" 
     android:icon="@drawable/topbar_btn_inbox"  
     android:title= "@string/about" />  

    <item android:id="@+id/sent" 
     android:showAsAction="ifRoom" 
     android:icon="@drawable/topbar_sent"  
     android:title="@string/about" />  
</menu> 
0

Вам нужно будет установить навигационный режим для начала. также у вашего устройства жесткий ключ меню, если да, то вы не увидите трех точек меню.

+1

Как я могу это сделать? – MainstreamDeveloper00

0

Вы должны сообщить системе, что вы будете использовать меню:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
} 
1
public boolean onCreateOptionsMenu(Menu menu) { 
    // TODO Auto-generated method stub 
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.actionoption, menu); 
    return true; 
} 
0

Чтобы optionmenu работать на других API,> 2.3.3 с помощью ActionBarSherlock я сделал следующее:

меню Файл:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/navigateMenu" 
android:icon="@drawable/icon" 
android:title="Menu" 
android:orderInCategory:"9" 
android:showAsAction="always" 
android:titleCondensed="Menu"> 
<menu> 
<item android:id="@+id/id1" 
android:icon="@drawable/option1" 
android:title="option1" /> 
<item android:id="@+id/id2" 
android:icon="@drawable/option2" 
android:title="option2" /> 
<item android:id="@+id/id3" 
android:icon="@drawable/option3" 
android:title="option3" /> 
</menu> 
</item> 
</menu> 

В вашем коде активности: Возьмите ссылку родителя MenuItem и присоединить его к ActionBar используя SHOW_AS_ACTION_ALWAYS свойства увидеть код для Same:

Активности файл:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.sample_menu, menu); 

//To make optionmenu visible on Actionbar for 2.3.3 

menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS) 
     return true; 
    } 
+0

Это сделал trcik .... ура ... !!!! –

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