见http://developer.android.com/guide/topics/ui/actionbar.html#Handling
处理对操作项的点击
当用户按下一个动作时,系统会调用您的活动的 onOptionsItemSelected() 方法。使用传递给此方法的 MenuItem,您可以通过调用 getItemId() 来识别操作。这将返回标签的 id 属性提供的唯一 ID,以便您可以执行适当的操作。例如:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case android.R.id.home:
onUpButtonPressed();
return true;
case R.id.action_search:
openSearch();
return true;
case R.id.action_compose:
composeMessage();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
注意:如果您通过 Fragment 类的 onCreateOptionsMenu() 回调从片段中膨胀菜单项,则系统会在用户选择其中一项时为该片段调用 onOptionsItemSelected()。但是,活动有机会首先处理事件,因此系统首先在活动上调用 onOptionsItemSelected(),然后再为片段调用相同的回调。为确保活动中的任何片段也有机会处理回调,请始终将调用作为默认行为传递给超类,而不是在不处理项目时返回 false。
要将应用程序图标启用为向上按钮,请调用 setDisplayHomeAsUpEnabled()。例如:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
...
}