将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); } }