好记性不如铅笔头

android, 编程

Android应用开发笔记:使用actionbarsherlock实现ActionBar

在文章【 Android应用开发笔记:使用Android的ActionBar 】中我们被忘了使用Android系统的兼容库来实现ActionBar,这里我们使用第二种方式,开源库:【 ActionBarSherlock

github:

【 https://github.com/cstriker1407/android/tree/master/HelloActionbarSherlock 】

1)开源库的下载和Demo的使用

访问官网:【 http://actionbarsherlock.com/download.html 】下载最新版本的库,然后将其解压缩。

导入需要的工程,这里我们只导入两个工程,如下图所示,这里可以修改下demos的Project的名称,便于识别。

修改目标工程,在actionbarsherlockSampleList上点击右键->Properties->Android,导入库,如下图所示:

clean两个工程,刷新下两个工程,保证两个工程都没有报错后,可以将actionbarsherlockSampleList Run到手机上。

2)我们自己工程的使用方式

首先和上一步一样,将actionbarsherlock作为库引用到我们自己的工程中,如果工程报android-support-v4.jar dismatch错误,可以进入本地工程文件夹,将本地工程里面的libs/下的android-support-v4.jar删除,这是最快捷的方法。

然后进入styles.xml文件,将parent属性改为:【 @style/Theme.Sherlock.Light 】

<resources>
    <style name="AppBaseTheme" parent="@style/Theme.Sherlock.Light"></style>
    <style name="AppTheme" parent="AppBaseTheme"></style>
</resources>

 修改MainActivity,使其继承SherlockActivity:

public class MainActivity extends SherlockActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

	@Override
	public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu)
	{
		getSupportMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		switch (item.getItemId())
		{
			case R.id.delete:
			{
				Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show();
				break;
			}
			case R.id.add:
			{
				Toast.makeText(this, "add", Toast.LENGTH_SHORT).show();
				break;
			}
//			case R.id.homeAsUp:
//			{
//				Toast.makeText(this, "homeAsUp", Toast.LENGTH_SHORT).show();
//				break;
//			}
			default:
				break;
		}
		return super.onOptionsItemSelected(item);
	}
}

 Menu文件夹的main.xml改为:

<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="add"
        android:titleCondensed="add2">
    </item>
    <item
        android:id="@+id/delete"
        android:icon="@android:drawable/ic_menu_delete"
        android:showAsAction="ifRoom"
        android:title="delete"
        android:titleCondensed="delete2">
    </item>
</menu>

 就可以了

备注:

1)ActionBarSherlock作者没有实际使用过,后续需要仔细的学习下demo。

2)参考【 http://my.oschina.net/summerpxy/blog/174675 】【 http://my.oschina.net/chenzz/blog/119586 】

http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.html 】

3)关于Actionbarsherlock的demo,官网上有一些说明,大家可以参考一下。

Leave a Reply

2 × 3 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据