2013-09-25 3 views
1

Я использую ActionBarSherlock в своем проекте, и иногда вам нужно добавить один или несколько элементов внутри панели действий.Добавление элементов в панель действий (с помощью ActionBarSherlock)

В этом BaixadosFragment класс (который простирается SherlockFragment), я использую следующий код и он работает отлично:

@Override 
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) 
{ 
    inflater.inflate(R.menu.main, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.refresh: 
      refresh(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

В этом случае, я добавляю кнопку обновления, ведьма одинока внутри основной .xml

НО Я хочу сделать то же самое в CupomDetalheActivity (хотя добавление кнопки совместного доступа), ведьма расширяет вместо этого функцию Шерлок-Фрагмент. Так что я не в состоянии отменить «onCreateOptionsMenu», как это имеет другую подпись (ниже):

//this is inside SherlockFragmentActivity 
public final boolean onCreateOptionsMenu(android.view.Menu menu) { 
    return true; 
} 
//this is inside SherlockFragment 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    //Nothing to see here. 
} 

Whith SherlockFragmentActivity, я даже не вижу, где я могу использовать Inflater, чтобы открыть XML, содержащий кнопка доля ... я ценю намного любые идеи и предложения ...

[EDIT] Это работало, по предложению DroidT в:

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

ответ

1

Ваш SherlockFragmentActivity также имеет onCreateOptionsMenu() и onPrepareOptionsMenu(). Вы можете раздуть параметры вашего меню в onCreateOptionsMenu(), используя getSupportMenuInflater(). Вы хотели бы позвонить в invalidateOptionsMenu() в свой SherlockFragmentActivity, когда вы хотите, чтобы это произошло, и добавьте опции меню в onPrepareOptionsMenu(). Для получения дополнительной информации см. Раздел «Изменение пунктов меню во время выполнения» в разделе .

1

Если вы используете меню внутри фрагмента, убедитесь, что вы называете setHasOptionsMenu(true); в фрагментах onCreate(Bundle savedInstance) метод

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