actionbarsherlock下载地址:https://github.com/JakeWharton/ActionBarSherlock
使用:
1、
导入
ActionBarSherlock并关联到项目中;
2、
在程序的AndroidManifest.xml文件中,修改主题,改为:android:theme="@style/Theme.Sherlock.Light"
3、
如果要让actionbar显示一些
menu按钮
,那么我们需要重写
activity
中的onCreateOptionsMenu,对应的还要重写onOptionsItemSelected来响应这些按钮的点击。另外该activity必须继承ShelockActivity.
public class MainActivity extends SherlockActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_delete:
Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}
}
其中,R.menu.activity_main是菜单的布局文件。内容如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/add"
android:icon="@android:drawable/ic_menu_add"
android:showAsAction="ifRoom"
android:title="添加"
android:titleCondensed="添加">
</item>
</menu>
4、
actionbar左上角返回按钮
实际项目中,我们经常需要ui中一个返回按钮来进行界面之间的跳转。其实很简单,和actionbar的使用一样,只需在Oncreate时或适当时机写上
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
那么如何响应呢
也是重写onOptionsItemSelected() ,这个返回键的id是android.R.id.home。
5、多选
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
<span style="white-space:pre"> </span>/** menu.add(groupId, itemId, order, title)
<span style="white-space:pre"> </span> * groupId:菜单项所在的组
<span style="white-space:pre"> </span>* itemId:菜单项编号
<span style="white-space:pre"> </span>* order:排序
<span style="white-space:pre"> </span>* title:标题
<span style="white-space:pre"> </span>*/
<span style="white-space:pre"> </span>SubMenu addMenu = menu.addSubMenu(0, 2, 3, "overflow");
<span style="white-space:pre"> </span>addMenu.add(0, 3, 0, "更换主题");
<span style="white-space:pre"> </span>addMenu.add(0, 4, 0, "系统设置");
<span style="white-space:pre"> </span>addMenu.add(0, 5, 0, "修改密码");
<span style="white-space:pre"> </span>addMenu.add(0, 6, 0, "更换头像");
<span style="white-space:pre"> </span>MenuItem overFlowItem = addMenu.getItem();
<span style="white-space:pre"> </span>overFlowItem.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_dark);
<span style="white-space:pre"> </span>overFlowItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
<span style="white-space:pre"> </span>return super.onCreateOptionsMenu(menu);
}
6、修改返回小图标:
<style name="MyTheme" parent="Theme.Sherlock.Light">
<item name="homeAsUpIndicator">@drawable/ic_ab_back_holo_dark</item>
</style>
这里注意一点 由于项目是使用的sherlock actionbar 所以parent 只能是Theme.sherlock.XXX
然后在Manifest 中把android:theme 修改成 style.xml 中自定义的 name
然后在Manifest 中把android:theme 修改成 style.xml 中自定义的 name