http://blog.csdn.net/guolin_blog/article/details/18234477

1、定义menu资源文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    tools:context="com.example.actionbartest.MainActivity" >


    <item

        android:id="@+id/action_compose"

        android:icon="@drawable/ic_action_compose"

        android:showAsAction="always"

        android:title="@string/action_compose"/>

    <item

        android:id="@+id/action_delete"

        android:icon="@drawable/ic_action_delete"

        android:showAsAction="always"

        android:title="@string/action_delete"/>

    <item

        android:id="@+id/action_settings"

        android:icon="@drawable/ic_launcher"

        android:showAsAction="never"

        android:title="@string/action_settings"/>


</menu>

2、这部分代码很简单,仅仅是调用了MenuInflater的inflate()方法来加载menu资源就可以了。

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main, menu);

return super.onCreateOptionsMenu(menu);

}

3、响应Action按钮的点击事件

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_compose:

Toast.makeText(this, "Compose", Toast.LENGTH_SHORT).show();

return true;

case R.id.action_delete:

Toast.makeText(this, "Delete", Toast.LENGTH_SHORT).show();

return true;

case R.id.action_settings:

Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();

return true;

default:

return super.onOptionsItemSelected(item);

}

}

4、通过Action图标进行导航

启用ActionBar图标导航的功能,可以允许用户根据当前应用的位置来在不同界面之间切换。比如,A界面展示了一个列表,点击某一项之后进入了B界面,这时B界面就应该启用ActionBar图标导航功能,这样就可以回到A界面。

我们可以通过调用setDisplayHomeAsUpEnabled()方法来启用ActionBar图标导航功能,比如:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setTitle("天气");

setContentView(R.layout.activity_main);

ActionBar actionBar = getActionBar();

actionBar.setDisplayHomeAsUpEnabled(true);

}

可以看到,在ActionBar图标的左侧出现了一个向左的箭头,通常情况下这都表示返回的意思,因此最简单的实现就是在它的点击事件里面加入finish()方法就可以了。

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case android.R.id.home:

finish();

return true;

……

}

}

5、

当点击ActionBar图标的时候,系统同样会调用onOptionsItemSelected()方法,并且此时的itemId是android.R.id.home,所以finish()方法也就是加在这里的了。

现在看上去,ActionBar导航和Back键的功能貌似是一样的。没错,如果我们只是简单地finish了一下,ActionBar导航和Back键的功能是完全一样的,但ActionBar导航的设计初衷并不是这样的,它和Back键的功能还是有一些区别的,