ActionBar的详细使用

ActonBar介绍

     ActionBar取代了传统的标题栏(title),其在activity位置就是title原有的位置,在activity的顶部。ActionBar上默认情况下包括了应用(app)的logo,logo的位置在ActionBar的左侧,紧挨在logo右侧的是activity的标题(title)。在ActionBar的右侧,可以是在选项菜单(options menu)中任意一个菜单项。ActionBar提供若干有用的特性,其中包括了:

① 作为“action选项”,在ActionBar上直接显示“选项菜单”(OptionsMenu)——

为用户进行某项操作提供直接的访问;

   作为“action项”没有出现在ActionBar上得菜单项会被置于“更多...”菜单项

中,在ActionBar上,“更多...”菜单项是以下拉形式实现的。

② 为在多个fragments之间切换提供标签(tabs)功能;

③ 为导航提供下拉列表;

④ 在“action项”位置提供交互式action组件,例如搜索框。

 在Activity中获得ActionBar

    在Android 3.0及更高的版本中,Activity中都默认包含有ActionBar组件。特别要注意的是,所有使用“holographic”主题的Activity都包含有ActionBar,并且所有Android 3.0上的应用自动接收这个主题。一个应用被认为是基于Android 3.0的标识是在AndroidManifest中的<uses-sdk>标签中设置了android:minSdkVersion或者android:targetSdkVersion属性值为11或者更大值时,此时的应用被系统认为是Android 3.0上得应用,这样就默认接受“holographic”主题,即其中的Activity包含有ActionBar。


效果如图:




ActionBarDemoActivity:


package com.gem.hsx.actionbar;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class ActionBarDemoActivity extends Activity 
{ 

	@Override 
	public void onCreate(Bundle savedInstanceState) 
	{ 
		super.onCreate(savedInstanceState); 
		setContentView(R.layout.main); 
	}
	/**
	 *  加载actionbar的布局文件,并且创建actionbar,屏蔽了menu按键
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater(); 
		inflater.inflate(R.menu.actionbar_menu, menu); 
		return true; 
	} 

	/**
	 * actionbar的item的监听事件
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.save:
			Toast.makeText(ActionBarDemoActivity.this, "你点击的是保存", 0).show();
			break;
		case R.id.set:
			Toast.makeText(ActionBarDemoActivity.this, "你点击的是设置", 0).show();
			break;	
		case R.id.another:
			Toast.makeText(ActionBarDemoActivity.this, "你点击的是其他操作", 0).show();
			break;	
		case R.id.delete:
			Toast.makeText(ActionBarDemoActivity.this, "你点击的是删除", 0).show();
			break;	
		case R.id.update:
			Toast.makeText(ActionBarDemoActivity.this, "你点击的是修改", 0).show();
			break;	
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	/**
	 * 重写onStart方法以便显示actionbar
	 */
	@Override
	protected void onStart() {
		super.onStart();
		ActionBar actionBar = this.getActionBar();
		actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
	}




} 


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请点击右上角的图标,然后再点击其他操作" />

</LinearLayout>

actionbar_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu"
        android:icon="@drawable/ic_launcher"
        android:showAsAction="always"
        android:title="菜单">
        <menu>
            <item
                android:id="@+id/set"
                android:icon="@drawable/ic_launcher"
                android:title="设置">
            </item>
            <item
                android:id="@+id/save"
                android:icon="@drawable/ic_launcher"
                android:title="保存">
            </item>
            <item
                android:id="@+id/another"
                android:icon="@drawable/ic_launcher"
                android:title="其他操作">
                <menu>
                    <item
                        android:id="@+id/delete"
                        android:icon="@drawable/ic_launcher"
                        android:title="删除">
                    </item>
                    <item
                        android:id="@+id/update"
                        android:icon="@drawable/ic_launcher"
                        android:title="修改">
                    </item>
                </menu>
            </item>
        </menu>
    </item>
</menu>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值