Android开源项目学习笔记_ActionBarSherlock
ActionBarSherlock是一个的Android开源项目,它包装了Android自带的ActionBar,并为早期的Android系统版本提供了完整的ActionBar功能。这个项目可以让你方便地在你的Andorid应用中使用ActionBar。本文将介绍如何使用ActionBarSherlock创建一个简单的Android应用。
一、下载和导入
1.首先下载ActionBarSherlock,在其官网上下载最新版本。
2.解压缩下载好的文件,并将此项目导入到Eclipse中,如下图所示:
二、代码实现
1.创建一个新项目,并将ActionBarSherlock添加到工程中,如下图所示:
2.修改AndroidManifest.xml文件,设置主题为ActionBarSherlock的主题:
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
3.在MainActivity中添加ActionBar的设置,代码如下:
public class MainActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if(itemId == android.R.id.home) {
// Do something when home button pressed
}
return super.onOptionsItemSelected(item);
}
}
以上代码的解释如下:
a.onCreate()方法中需要调用super.onCreate(savedInstanceState)方法。
b.调用setContentView(R.layout.activity_main)方法。
c.调用getSupportActionBar()方法来获取ActionBar对象。
d.调用setDisplayHomeAsUpEnabled(true)方法来设置CanbebackKey为true。
e.调用setHomeButtonEnabled(true)方法来开启ActionBar上正在的图标是否可点击。
f.覆盖了onCreateOptionsMenu方法,来设置菜单。用getMenuInflater()方法来获取MenuInflater对象,然后调用inflate()方法来引用菜单。
g.覆盖了onOptionsItemSelected方法,来处理ActionBar上的事件。
三、效果展示
在最后运行效果如下图所示:
ActionBarSherlock是一个非常棒的开源框架,它为Android提供了强大的ActionBar支持,既支持Android原生的ActionBar,又提供了兼容性的解决方案。通过学习这个框架,我们可以更好地掌握Android的开发,提高自己的技术水平。
