Good. Your code looks good, but if you want to reuse the same ActionBar with the same icons and menus and, as a rule, the same functions in each action.
You can add the code:
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu, menu); SearchView searchView = (SearchView) menu.findItem(R.id.menu_action_search).getActionView(); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()){ case R.id.menu_action_search: {} case R.id.menu_action_locate: {} case R.id.menu_action_mail: {} case R.id.menu_action_call: {} } return super.onOptionsItemSelected(item); }
in your BaseMenuActivity class, and your action bar will be populated the same for every action that extends from it.
Update:
To create a menu layout, you must create a menu folder in the res / menu folder. Then create an xml file inside the called: some_title.xml
A typical example of an XML menu file is as follows:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_search" android:actionViewClass="com.actionbarsherlock.widget.SearchView" android:icon="@drawable/abs__ic_search" android:showAsAction="ifRoom|withText|collapseActionView" android:title="@string/menu_action_search"/> <item android:id="@+id/menu_sort" android:icon="@drawable/content_sort_icon" android:showAsAction="always" android:title="@string/menu_action_sort"> </item> </menu>
and then inflate this file:
@Override public boolean onCreateOptionsMenu(Menu menu) {
For a more detailed introduction to this guide, it is very useful to use the ActionBar:
http://www.vogella.com/tutorials/AndroidActionBar/article.html
source share