2013-07-03 2 views
0

Я относительно новичок в барах действий, и я использую библиотеку actionBarSherlock. Я знаю, что работа в действии лучше всего, когда вы часто совершаете действия, которые легко доступны.Можно ли манипулировать панель действия отдельным фрагментом?

фон:

Моя панель действий в настоящее время работает, позволяя кнопки домой и onCreateOptionsMenu, что приводит к завышению меню с пунктом меню календаря (не виден) и пунктом меню настройки.

У меня есть основное действие, которое вызывает несколько фрагментов, таких как FragA, FragB, FragC.

Вопрос:

ли это, возможно, какой-то образом манипулировать мои пункты меню из моих фрагментов, или, по крайней мере, когда они собираются назвать таким образом, что я могу «показать» календарь пункт меню и обрабатывать вызовы?

Вот что я до сих пор: actionbar_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="30dp" 
android:orientation="horizontal" > 
<Button 
    android:id="@+id/b1" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:text="Stuff" /> 
</LinearLayout> 

Вот как я использую homeButton:

public void onResume() 
{ 
    super.onResume(); 

    actionBar = getSupportActionBar(); 
    actionBar.setHomeButtonEnabled(true); 
    actionBar.setIcon(R.drawable.icon_tsn);... 
} 

фрагмент я хочу работать только с простирается SherlockFragment .. Любая помощь оценивается ...

+2

Вашей деталь действия должна иметь название набор 'андроид: название =«»' – Neoh

ответ

1

Is i возможно, чтобы каким-то образом манипулировать моими пунктами меню из моих фрагментов или, по крайней мере, когда они собираются вызываться таким образом, что я могу «показать» элемент меню календаря и обрабатывать вызовы?

Ваш фрагмент может позвонить setHasOptionsMenu(true) (например, от onCreateView()), после чего она будет вызвана с onCreateOptionsMenu() и onOptionsItemSelected(), так же, как деятельность. Если фрагмент будет виден, появятся его элементы панели действий, иначе они будут удалены.

Следовательно, типичным шаблоном является указание активности элементов действия, которые действительны независимо от того, какие фрагменты видны, и чтобы фрагменты определяли элементы панели действий, которые являются для них конкретными.

+0

Привет CommonsWare, я попробовал то, что вы предложили, но я получаю NullPointerException в com.android.internal.view.menu.MenuItemImpl.toString (MenuItemImpl.java:496). Вы знаете, почему это происходит? – ryvianstyron

+0

Используя этот https://github.com/JakeWharton/ActionBarSherlock/issues/902 (точную ошибку я получаю), я просто прокомментировал журнал, вызвавший сбой. но теперь ничего не происходит, когда я нажимаю на значок ... – ryvianstyron

+0

@AminaKhalique: Как было отмечено в этом выпуске, и, как упоминал Neoh в комментарии в другом месте, ваш элемент '' в вашем ресурсе меню нуждается в 'android: title ', даже если вы не используете заголовок. – CommonsWare

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