Reuse the Action Bar in all the activities of app

删除回忆录丶 提交于 2019-11-28 11:27:06
ManosProm

Well Your code looks good, but if you want to reuse exactly the same ActionBar with the same icons and menus and generally the same functionality in every activity.

You could 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 actionbar will be populated the same for every activity that extends from it.

Update:

To create a menu layout you should create a folder 'menu' in your resources folder res/menu. Then create a xml file inside called : some_title.xml

A typical example of a menu xml file is like below:

<?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 that file :

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.some_title, menu);
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_action_search).getActionView();
        return true;
    }

For some more reading this tutorial is very very good on using ActionBar:

http://www.vogella.com/tutorials/AndroidActionBar/article.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!