actionbarsherlock的使用

来源:互联网 发布:jquery源码 on方法 编辑:程序博客网 时间:2024/04/29 04:03
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、多选

@Overridepublic 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 
0 0
原创粉丝点击