Action Bar代替了传统的位于设备屏幕的标题栏,主要用来显示应用程序的图标和活动的名称以及添加定制动作项等功能。
1. 显示和隐藏Action Bar
显示和隐藏Action Bar 一般有两种方式,一种是配置xml文件方式,一种是编程方式。
(1)xml配置方式,就是在AndroidManifest.xml中添加如下代码:
android:theme="@android:style/Theme.Holo.NoActionBar"
(2)编程方式实现如下:
ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true);//设置应用程序图标可被单击 actionBar.hide();
2.动作项的添加、定制以及应用程序图标的定制
除了显示应用程序的图标和活动名称外,还可以添加动作项。动作项是应用程序中经常执行的一些操作的快捷方式。动作项添加和定制的实现方法如下:
package com.example.myactionbar; import android.net.rtp.RtpStream; import android.os.Bundle; import android.R.anim; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MyActionBarActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true);//设置应用程序图标可被单击 // actionBar.hide(); // actionBar.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub super.onCreateOptionsMenu(menu); createMenu(menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub return MenuChoice(item); } private void createMenu(Menu menu){ MenuItem menuItem1 = menu.add(0, 0, 0, "菜单1"); menuItem1.setIcon(R.drawable.setting); menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM| MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem menuItem2 = menu.add(0, 1, 1, "菜单2"); menuItem1.setIcon(R.drawable.ic_launcher); menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem menuItem3 = menu.add(0, 2, 2, "菜单3"); menuItem1.setIcon(R.drawable.setting); menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); MenuItem menuItem4 = menu.add(0, 3, 3, "菜单4"); menuItem1.setIcon(R.drawable.ic_launcher); menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); MenuItem menuItem5 = menu.add(0, 4, 4, "菜单5"); menuItem1.setIcon(R.drawable.ic_launcher); menuItem1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } private boolean MenuChoice(MenuItem item){ switch (item.getItemId()) { case android.R.id.home: Toast.makeText(this, "您点击了应用程序的Icon", Toast.LENGTH_LONG).show(); Intent intent = new Intent(this,MyActionBarActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; case 0: Toast.makeText(this, "您点击了菜单1", Toast.LENGTH_LONG).show(); return true; case 1: Toast.makeText(this, "您点击了菜单2", Toast.LENGTH_LONG).show(); return true; case 2: Toast.makeText(this, "您点击了菜单3", Toast.LENGTH_LONG).show(); return true; case 3: Toast.makeText(this, "您点击了菜单4", Toast.LENGTH_LONG).show(); return true; case 4: Toast.makeText(this, "您点击了菜单5", Toast.LENGTH_LONG).show(); return true; } return false; } }