2013-11-10 3 views
2

Я пытаюсь создать различные элементы в панели действий для различных действий. В качестве примера на одной странице мне нужен значок поиска, но не на другой странице. Я добавляю элементы в menu.xml, а затем раздуваю всю страницу в определенной деятельности, но хочу показать только определенные элементы .... как это сделать? ThanksРазличные панели действий для разных видов деятельности

ответ

3

Вы можете использовать функцию для MenuItems. С их помощью вы можете сделать свои конкретные предметы видимыми/невидимыми, как вам в них.

В onCreateOptionsMenu() обратного вызова вы будете иметь что-то вроде этого:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     ... 
     // hide the menu item 
     menu.findItem(R.id.yourItem).setVisible(false); 
     ... 
     return true; 
    } 

Или вы можете использовать seperat menu.xml для ваших различных мероприятий. Который был бы чище. Потому что вы избавитесь от частей кода, чтобы обрабатывать элементы, которые вам не нужны.

+0

о @Steve Benett- Я не знал, что вы можете добавьте дополнительные меню. Спасибо за советы :) – Alfie

+0

@Steve Bennett - я много гугл, но не могу найти, как использовать несколько файлов XML. Можете ли вы уточнить? – 0x4B1D

+0

Я полагаю, я недостаточно читал свой собственный код. Вот как это делается: @Override public boolean onCreateOptionsMenu (меню меню) { getMenuInflater(). Inflate (R.menu.menu_main, menu); return true; } – 0x4B1D

1

Чтобы добавить другую панель действий или на панели инструментов бар на верхней части различной активности, вы можете добавить их следующим образом sample_activity.xml

<android.support.v7.widget.Toolbar android:id="@+id/toolbar" 
    android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> 

и следующий код в файл Java который расширяет AppCompatActivity, например. sample_activity.class

public class sample_activityextends AppCompatActivity { 
    Toolbar toolbar = null; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.sample_activity); 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     // Get a support ActionBar corresponding to this toolbar 
     android.support.v7.app.ActionBar ab = getSupportActionBar(); 

     // Enable the Up button 
     ab.setDisplayHomeAsUpEnabled(true); 
} 
} 

Как мы сделали написал код в вышеуказанной деятельности

// Получение поддержки ActionBar, соответствующий этой панели android.support.v7.app.ActionBar аб = getSupportActionBar();

// Enable the Up button 
    ab.setDisplayHomeAsUpEnabled(true); 

это добавит назад или верхнюю кнопку в вас активности, но для этого также необходимо внести следующие изменения в AndroidManifest.xml

<activity android:name=".sample_activity" 
    android:parentActivityName=".MainActivity"> 
    <meta-data android:name="android.support.PARENT_ACTIVITY" 
     android:value=".MainActivity"></meta-data> 

</activity> 
<activity android:name=".MainActivity"></activity> 
Смежные вопросы