FirstActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* Demo描述:
* ActionBar的Home导航功能.
* 即点击ActionBar的一个按钮,回到App的首页.
*
* 具体实现:
* 在ActionBar上设置一个"Home",点击"Home"
* 时回到指定位置即可
*
* 备注说明:
* 该示例是在testsimpleactionbar1的基础上进行的
* 增加的代码很少.
*
* 参考资料:
* 1 Android疯狂讲义(第二版)
* Thank you very much
*
*/
public class FirstActivity extends Activity {
private Button mFirstButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
init();
} private void init(){
mFirstButton=(Button) findViewById(R.id.firstButton);
mFirstButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
}
});
} }

SecondActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class SecondActivity extends Activity {
private Button mSecondButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
init();
} private void init(){
mSecondButton=(Button) findViewById(R.id.secondButton);
mSecondButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(SecondActivity.this, ThirdActivity.class);
startActivity(intent); }
});
} }

ThirdActivity如下:

package cc.testsimpleactionbar2;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
/**
* 核心代码:
* mActionBar.setDisplayHomeAsUpEnabled(true);
*
*/
public class ThirdActivity extends Activity {
private ActionBar mActionBar;
private TextView mTipTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third);
init();
} private void init(){
mActionBar=getActionBar();
//设置是否显示应用程序的图标
mActionBar.setDisplayShowHomeEnabled(true);
//将应用程序图标设置为可点击的按钮
mActionBar.setHomeButtonEnabled(true);
//将应用程序图标设置为可点击的按钮,并且在图标上添加向左的箭头
//该句代码起到了决定性作用
mActionBar.setDisplayHomeAsUpEnabled(true);
mTipTextView=(TextView) findViewById(R.id.tipTextView);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_menu, menu);
return true;
} // 菜单项被选中时执行该方法
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.isCheckable()) {
menuItem.setChecked(true);
}
switch (menuItem.getItemId()) {
case android.R.id.home:
//点击到我们ActionBar中设置的Home按钮
Intent intent = new Intent(this, FirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break;
case R.id.font10:
mTipTextView.setTextSize(10 * 2);
break;
case R.id.font12:
mTipTextView.setTextSize(12 * 2);
break;
case R.id.font14:
mTipTextView.setTextSize(14 * 2);
break;
case R.id.font16:
mTipTextView.setTextSize(16 * 2);
break;
case R.id.font18:
mTipTextView.setTextSize(18 * 2);
break;
case R.id.redFont:
mTipTextView.setTextColor(Color.RED);
break;
case R.id.greenFont:
mTipTextView.setTextColor(Color.GREEN);
break;
case R.id.blueFont:
mTipTextView.setTextColor(Color.BLUE);
break;
case R.id.plain_item:
Toast toast = Toast.makeText(ThirdActivity.this, "单击了普通菜单项",Toast.LENGTH_SHORT);
toast.show();
break; default:
break;
}
return true;
} }

first.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dip"
android:text="这是第一个Activity"
android:textSize="20sp"
android:textStyle="bold" /> <Button
android:id="@+id/firstButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:text="跳到第二个Activity"
android:textSize="16sp" /> </RelativeLayout>

second.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dip"
android:text="这是第二个Activity"
android:textSize="20sp"
android:textStyle="bold" /> <Button
android:id="@+id/secondButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="跳到第三个Activity"
android:textSize="16sp"
android:gravity="center"
/> </RelativeLayout>

third.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dip"
android:text="这是第三个Activity"
android:textSize="20sp"
android:textStyle="bold" /> <TextView
android:id="@+id/tipTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="修改文字大小和颜色"
android:textSize="16sp"
android:gravity="center"
/> </RelativeLayout>

action_menu.xml如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:title="文字大小"
android:icon="@drawable/font"
android:showAsAction="always|withText">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/font10"
android:title="10"
/>
<item
android:id="@+id/font12"
android:title="12"
/>
<item
android:id="@+id/font14"
android:title="14"
/>
<item
android:id="@+id/font16"
android:title="16"
/>
<item
android:id="@+id/font18"
android:title="18"
/>
</group>
</menu>
</item> <item
android:id="@+id/plain_item"
android:icon="@drawable/ic_launcher"
android:title="普通菜单项"
android:showAsAction="always|withText"
/> <item
android:title="设置颜色"
android:icon="@drawable/color"
android:showAsAction="always|withText">
<menu>
<group>
<item
android:id="@+id/redFont"
android:title="红色"
/>
<item
android:id="@+id/greenFont"
android:title="绿色"
/>
<item
android:id="@+id/blueFont"
android:title="蓝色"
/>
</group>
</menu>
</item> </menu>

Android ActionBar详解(三)--->ActionBar的Home导航功能的更多相关文章

  1. Android ActionBar详解(三):ActionBar实现切换Tabs标签

    实现切换Tabs标签; Activity代码: public class ActionBarTabs extends Activity { @Override protected void onCre ...

  2. (转)android Fragments详解三:实现Fragment的界面

    为fragment添加用户界面 fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中.    一个 要为fragment提供layo ...

  3. 【转】Android编译系统详解(三)——编译流程详解

    原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Androi ...

  4. Android Fragment详解(三): 实现Fragment的界面

    为fragment添加用户界面: Fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中. 一个 要为fragment提供layout ...

  5. Android 布局详解 -三表格布局(TableLayout)以及重要属性

              TableLayout跟TableRow 是一组搭配应用的布局,TableLayout置底,TableRow在TableLayout的上方,而Button.TextView等控件就 ...

  6. Android Loader详解三:重启与回调

    重启装载器 当你使用initLoader()时,如果指定ID的装载器已经存在,则它使用这个装载器.如果不存在呢,它将创建一个新的.但是有时你却是想丢弃旧的然后开始新的数据. 要想丢弃旧数据,你应使用r ...

  7. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  8. Android 之窗口小部件详解(三)  部分转载

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  9. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

随机推荐

  1. SQL如何合并查询结果

    1.UNION的作用 UNION 指令的目的是将两个 SQL 语句的结果合并起来.从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION 的一个 ...

  2. 移动前端不得不了解的HTML5 head 头标签(2016最新版)

    小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货.各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌握. ...

  3. left join 和 left outer join 的区别

    left join 和 left outer join 的区别 通俗的讲:    A   left   join   B   的连接的记录数与A表的记录数同    A   right   join   ...

  4. MAVEN入门(一)

    一.Maven的基本概念 Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→ ...

  5. EassyMock实践 捕获参数

    在测试接口过程中,有时我们希望知道自己期望传入的参数是什么,以此来判断传入参数的正确行,这时就需要用到EassyMock的capture方法.该方法能捕获传入的参数存放到自定义的变量中,然后用捕获的参 ...

  6. leetcode LRU Cache python

    class Node(object): def __init__(self,k,x): self.key=k self.val=x self.prev=None self.next=None clas ...

  7. web.xml加载顺序详解

    一. 1.启动tomcat启动web项目,首先读取web.xml文件中<context-param>和<listener> 2.容器创建一个ServletContext(ser ...

  8. 使用cmake安装mysql5.5.13

    MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 安装cmake : tar zxvf ...

  9. linux杂记(二)主机硬盘规划

    linux安装过程中,至少要两个partition,一个是[/],另一个是虚拟内存[swap].但比较不保险. 稍微麻烦点的方式: / /usr:linux操作系统 /home:使用者信息 /var: ...

  10. 纯CSS 贴底部的布局(兼容各个浏览器包括IE6)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...