淘先锋技术网

首页 1 2 3 4 5 6 7


ActionBar基本简介

学习笔记,欢迎指导。

△本文介绍如下内容:

    →ActionBar的简介。

    →如何添加ActionBar

    →为ActionBar设置按钮。

    →为子窗体设置回退键返回到上一级的窗体。

本文只作基本介绍,ActionBar丰富且强大的功能不在本文范围。

 

△概述:他提供了多种UI特性,让你的APP和其他的保持较多的一致性,为用户熟悉,核心的功能包括:

    →一个专门的空间来显示你的应用的标识,并且可以指出当前处在应用的哪个页面。

    →以一类可预见的方式访问重要的操作(比如检索)

    →支持导航和视图切换(通过Tabs以及下拉列表

 

△如何添加Action Bar


    →在安卓3.0以及更新的版本,所有窗体都默认带有Action Bar。只要窗体的主题是

"@android:style/Theme.Holo"体系里的一员即可。如果你使用了自定义的主题,记得将你主题那个parent属性设为”@android:style/Theme.Holo”体系里的其中一个。


    →在安卓3.0以前的版本里,需要:


        (1)下载并安装v7 appcompatjar包。

        (2)使自己的窗体继承:ActionBarAvtivity

        (3)在清单文件里设置窗体主题标签:

        android:theme = “@style/Theme.AppCompat”。(是Theme.AppCompat体系里的一员即可)

        (4)如果你使用了自定义的主题,他必须是Theme.AppCompat体系里一员。

 

 

△为Action Bar添加按钮

    →某个窗体的ActionBar的所有按钮,都有res/menu/路径下的一个文件管理,所以只要创建一个文件,并且进行相应配置即可,步骤如下:

    →在res/menu/路径创建一个xml的文件(一般情况下系统默认都建了一个)。

    →文件里面添加一个<menu>标签,他代表了所有按钮。

    →在menu标签里,添加<item>标签,每个<item>标签代表栏目里的一个按钮。为item设置属性:idtitleiconshowAsAction

    →以上已经完成一个栏目的配置了,现在回到窗体里面将栏目和窗体绑定:

    复写如下方法即可完成绑定:

  

public  boolean  onCreateOptionsMenu(Menu menu) {
	//第一个参数要传入上述那个文件的名字
	getMenuInflater().inflate(R.menu.menu_main, menu);
	return true;
}


△为按钮设置响应

//复写如下方法即可

public boolean onOptionsItemSelected(MenuItem item) {
	int id = item.getItemId();
	if (id == R.id.action_settings) {
	 //做你自己想做的事   
		return true;
	}
	//如果没有一个对上
	//返回超类那个ID
	return  super.onOptionsItemSelected(item);
}


△为子窗体设置回退按钮

    →设置步骤:

    (1)为子窗体指定其上一级窗体。

    (2)让子窗体能显示出一个回退键。

    (3)当回退按钮被按下,回到上一级的窗体。

 

    →API16以上的版本:这类版本后面两个步骤在一个方法里面被完成。

    (1)指定上一级的窗体:在清单文件里面,子窗体的那个标签,设置属性,

                Android:parentActivityName=”上一级窗体的类名”(必须使用完整类名)

    (2)在子窗体onCreate方法体里,调用方法:getActionBar().setDisplayHomeAsUpEnabled(true);

说明:对于API16以上的版本,这里就已完成设置,你不用去处理点击事件,系统会自动完成的(因为系统已经知道你的上一级窗体是谁了),那个回退键头的显示和点击事件响应,都有该方法完成了。

 

    →API16以前的版本,由于没有parentActivityName属性,所要进行其他设置,而且还要自己处理点击事件响应函数,步骤如下:

    (1)设置<meda-data>标签(通过他来指定上一级的窗体):

     

<meda-data
	android:name=”android.support.PARENT_ACTIVITY”
	android:value=”上一级窗体的类名”/>(同样是要完整类名)
<meda-data>

 

    (2)显示那个回退键头:在onCreate方法体里面调用

            1>getActionBar.setDisplayHomeAsUpEnabled(true)//API11以后调用他

                //API11以前调用下面的

            2>getSupportActionBar.setDisplayHomeAsUpEnabled(true);

            根据API的版本选择一个就可以了

 

            3>处理回退键的点击事件:

              子窗体里复写方法:

             

public  boolean  onOptionsItemSelected(MenuItem item) {
	switch (item.getItemId()){
		case android.R.id.home://这是回退键特有的ID
		//调用他能返回上一级的窗体
		NavUtils.navigateUpFromSameTask(this);
		break;
	}
	return super.onOptionsItemSelected(item);
}

            //至此,回退键的设置结束。