运行效果如下:
Activity代码如下:
public class MainActivity extends Activity {
ActionBar actionBar;
Button show,hide;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar = getActionBar();
// 设置显示应用程序的图标
actionBar.setDisplayShowHomeEnabled(true);
// 设置将应用程序的图标显示为可点击的按钮
actionBar.setHomeButtonEnabled(true);
// 设置显示应用程序的图标,并在该图标上添加向左的箭头
actionBar.setDisplayHomeAsUpEnabled(true);
show = (Button) findViewById(R.id.btn_show);
hide = (Button) findViewById(R.id.btn_hide);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示ActionBar
actionBar.show();
}
});
hide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 隐藏ActionBar
actionBar.hide();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 使Activity的ActionBar加载定义好的菜单menu.main
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
return super.onCreateOptionsMenu(menu);
}
// 选项菜单被单击后回调的方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.isCheckable()){
item.setCheckable(true);
}
switch (item.getItemId()){
case R.id.home:
Toast.makeText(MainActivity.this, "返回主页面", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(MainActivity.this, "id为:"+item.getItemId(), Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
在res文件夹下建menu文件夹,在该文件夹下创建menu.main文件,文件中的代码为:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/font_size"
android:showAsAction="always|withText"
android:icon="@drawable/font">
<menu>
<!--定义一组单选子菜单-->
<group android:checkableBehavior="single">
<item android:id="@+id/font_10"
android:title="@string/font_10"/>
<item android:id="@+id/font_12"
android:title="@string/font_12"/>
<item android:id="@+id/font_14"
android:title="@string/font_14"/>
<item android:id="@+id/font_16"
android:title="@string/font_16"/>
</group>
</menu>
</item>
<item android:title="@string/plain_item"
android:id="@+id/plain_item"
android:showAsAction="always|withText">
</item>
<item
android:id="@+id/font_color"
android:title="@string/font_color"
android:showAsAction="always|withText"
android:icon="@drawable/color">
<menu>
<!--默认的checkableBehavior为multiple-->
<group>
<item android:title="@string/title_red"
android:id="@+id/title_red"/>
<item android:title="@string/title_yellow"
android:id="@+id/title_yellow"/>
<item android:title="@string/title_black"
android:id="@+id/title_black"/>
</group>
</menu>
</item>
</menu>
onCreateOptionsMenu()用来加载自定义的菜单,onOptionsItemSelected()做菜单项被点击后要进行操作