右侧增加控件
要在 ActionBar 的右侧添加按钮,可以使用 Menu 来定义 Action Items,然后在 ActionBar 中显示。下面是如何做的:
- 在 res/menu 文件夹中创建菜单资源文件:在项目的
res/menu
文件夹中创建一个 XML 文件,例如menu_main.xml
。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_custom"
android:title="Custom"
app:showAsAction="always"
android:icon="@drawable/ic_custom" />
</menu>
- 在 Activity 中加载菜单:在你的 Activity 中,使用
onCreateOptionsMenu()
方法加载菜单资源。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
- 处理菜单项点击事件:在
onOptionsItemSelected()
方法中处理菜单项的点击事件。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_custom) {
// 处理点击事件
return true;
}
return super.onOptionsItemSelected(item);
}
- 动态设置文本
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem dynamicMenuItem = menu.findItem(R.id.action_custom);
dynamicMenuItem.setTitle("你好");
return super.onPrepareOptionsMenu(menu);
}
这样就可以在 ActionBar 的右侧添加一个按钮,并且在点击时执行相应的操作。
左侧显示返回按钮,并添加点击事件
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true); // 显示返回按钮
actionBar.setHomeButtonEnabled(true); // 设置返回按钮可点击
actionBar.setTitle("xx");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// 检查是否是返回按钮被点击
if (item.getItemId() == android.R.id.home) {
// 如果你想关闭当前Activity,可以调用finish()
finish();
return true;
}
return super.onOptionsItemSelected(item);
}