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. Service的基本组成

    Service与Activity的最大区别就是一有界面,一个没有界面. 如果某些程序操作很消耗时间,那么可以将这些程序定义在Service之中,这样就可以完成程序的后台运行, 其实Service就是一 ...

  2. Mina入门:mina版之HelloWorld

    一,前言: 在完成上篇文章<Mina入门:Java NIO框架Mina.Netty.Grizzly简介与对比>之后,我们现在可以正式切入Mina入门学习了. 二,搭建项目结构与解决项目依赖 ...

  3. Sql Service存储过程分页

    一起是用oracle数据库..感觉oracle数据库强大.查询速度是杠杠的.换了家公司用的是SQL SERVICE.以前用了1年现在捡回以前的记忆.动手写了动态SQL过存储过程分页.感觉和oracle ...

  4. C#调用短信接口(通过简单的工厂模式整合多个短信平台)

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  5. node to traverse cannot be null!

    严重: Servlet.service() for servlet springmvc threw exception java.lang.IllegalArgumentException: node ...

  6. QF——iOS第三方登录和社会化分享

    QQ登录的流程: 1.下载SDK,并添加到项目中: 2.添加SDK需要的依赖库,以及配置文件: 3.重写APPDelegate的方法handleOpenURL和openURL: 4.实现Tencent ...

  7. 精读《javascript高级程序设计》笔记二——变量、作用域、内存以及引用类型

    变量.作用域和内存问题 执行环境共有两种类型——全局和局部 作用域链会加长,有两种情况:try-catch语句的catch块,with语句. javascript没有块级作用域,即在if,for循环中 ...

  8. Javascript中的attribute和property分析

    attribute和property这两个单词,都有属性的意思,attribute有属性.特质的意思,property则有性质,性能的意思. 首先需要明确的是,在规范中,读取和设置attribute的 ...

  9. js/jQuery实现复制到剪贴板功能,兼容所有浏览器

    因为工作的原因,需要实现这样一个功能:点击按钮,复制文本内容. 百度了一下,大都语焉不详,最终找到了一篇很好的博文,有讲解,有实例,捣鼓了一会,最终实现了功能. 网址在这里http://www.cnb ...

  10. 【Chromium中文文档】跨平台开发的约定与模式

    跨平台开发的约定与模式 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/C ...