欢迎访问宙启技术站
智能推送

Android开源项目学习笔记_ActionBarSherlock

发布时间:2023-05-15 15:47:27

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的开发,提高自己的技术水平。