2013-03-02 2 views
0

Мне нужно внести два незначительных изменения в ActionBar с Fragment.Altering ActionBar из фрагментов

Родители FragmentActivity's onCreateOptionMenu и onPrepareOptions обрабатывают меню через приложение.

Однако в содержании основного Fragment, я хочу, чтобы название ActionBar изменилось для навигации. Каждый раз изменяется Fragment.

Кроме того, в одном случае я хочу добавить один пункт меню, как определено в макете. Я предпочитаю не дублировать код для этой части, мне нужно, чтобы override те же методы и снова настроили все меню, включая onOptionSelected? Или...?

Edit:

На моем макете меню xml, у меня есть этот пункт:

<item 
     android:id="@+id/Add" 
     android:title="Add Items"/> 

Этот пункт следует рассматривать в ActionBar только для одного конкретного Fragment. Остальная часть меню идентична тому, что должно быть видно для остальной части приложения. Во фрагменте, где мне нужен этот новый элемент, нужно ли также делать onCreateOptionsMenu, onPrepareOptionsMenu и onOptionsItemSelected и снова дублировать и другие элементы меню? Или я могу override тех, кто находится в Fragment, и просто введите этот дополнительный пункт меню?

ответ

0

Это ответил, что мне нужно для части 2.

Подставляя это в onAct ivityCreated:

setHasOptionsMenu(true); 

И затем добавить это тоже:

@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     super.onPrepareOptionsMenu(menu); 

     ActivityCompat.invalidateOptionsMenu(getActivity()); 

     MenuItem Add = menu.findItem(R.id.Add); 
     Add.setVisible(true); 


    } 

Родитель активность устанавливает R.id.Add невидим по умолчанию.

1

1.

getActivity().getActionBar().setTitle(); 

или

getActivity.getSupportActionBar().setTitle(); 
  1. дополнительные разъяснения пожалуйста :)
+0

Добавлен немного больше информации для вас ... Я попробую эту первую часть и протестирую. – KickingLettuce

+0

Да, in onActivityCreated(). Что касается меню - я не знаю ответа, вы можете просто попробовать себя проверить;) – agamov

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