ActionBarSherlock的学习笔记(二) ------------ 创建ActionBarSherlock

将ActionBarSherlock 作为库项目添加到当前的项目中去,然后创建ActionBar,并自定义ActionBar的标题栏

例子如下:

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;

public class MainActivity extends SherlockActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initActionBarTitle();
    }
    
    /**
     * 定义ActionBar的标题栏,可定义标题栏的图标和文字以及是否添加返回按钮
     * 
     * @return void  
     * @author hsx
     * @time 2014-3-14下午07:19:20
     */
    private void initActionBarTitle() {

      // 可以自定义actionbar
        getSupportActionBar().setDisplayShowCustomEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        // 不在actionbar显示logo
        getSupportActionBar().setDisplayShowHomeEnabled(false);

        View mainActionBarView = LayoutInflater.from(this).inflate(R.layout.main_action_bar, null);
        /**
         * 用此方法设置自定义的标题栏 
         */
        getSupportActionBar().setCustomView(mainActionBarView);
    }

    @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

        /*
         * @param groupId The group identifier that this item should be part of.
         * This can be used to define groups of items for batch state changes.
         * Normally use {@link #NONE} if an item should not be in a group.
         * 
         * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
         * unique ID.
         * 
         * @param order The order for the item. Use {@link #NONE} if you do not
         * care about the order. See {@link MenuItem#getOrder()}.
         * 
         * @param title The text to display for the item.
         * 
         * 
         * menu.add(groupId, itemId, order, title);
         */

        MenuItem search = menu.add(0, 1, 2, "share");
        search.setIcon(R.drawable.abs__ic_menu_share_holo_dark);
        search.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

        /************************************************************* 
          按钮的排列的顺序, 不是按照创建的先后顺序显示的, 而是根据第三个参数(order)的设定显示的,order数字小的排列在前面。
         若是order的大小一样则,按照创建的先后顺序显示。
         点击事件的判断是根据第二个参数(itemId)做判断的。
        /*************************************************************/

        MenuItem addItem = menu.add(0, 2, 1, "overflow");
        addItem.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_dark);
        addItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 1:
            Toast.makeText(MainActivity.this, "分享", Toast.LENGTH_SHORT).show();
            break;
        case 2:
            Toast.makeText(MainActivity.this, "溢出栏", Toast.LENGTH_SHORT).show();
            break;

        }
        return super.onOptionsItemSelected(item);
    }
}
原文地址:https://www.cnblogs.com/hsx514/p/3600815.html