1. Intent启动Activity案例

(1)首先是main.xml和other.xml文件如下:

main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is MainActivity!"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OpenOtherActivity!"
android:id="@+id/btnOpen"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="HideActivity"
android:id="@+id/btnHideActivity"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ExitActivity"
android:id="@+id/btnExitActivity"
/>
</LinearLayout>

接着是other.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" /> </LinearLayout>

(2)MainActivity.java 和 OtherActivity.java文件:

MainActivity.java:

package com.openother;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity implements OnClickListener {
//声明按钮
private Button btnOpen, btnHideActivity, btnExitActivity; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//实例按钮
btnOpen = (Button) findViewById(R.id.btnOpen);
btnHideActivity = (Button) findViewById(R.id.btnHideActivity);
btnExitActivity = (Button) findViewById(R.id.btnExitActivity);
//给每个按钮添加监听
btnOpen.setOnClickListener(this);
btnHideActivity.setOnClickListener(this);
btnExitActivity.setOnClickListener(this);
} public void onClick(View v) {
if (v == btnOpen) {
//创建一个意图,并且设置需打开的Activity
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
//发送数据
intent.putExtra("Main", "我是发送的数据~娃哈哈");
//启动另外一个Activity
this.startActivity(intent);
} else if (v == btnHideActivity) {
this.finish();//退出Activity
}else if (v == btnExitActivity) {
System.exit(0);//退出程序
}
}}

其次是OtherActivity.java:

/**
*
*/
package com.openother; import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView; /**
* @author Himi
*
*/
public class OtherActivity extends Activity {
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);//设置当前的OtherActivity的视图内容绑定R.layout.other的布局文件
tv = (TextView)findViewById(R.id.textView1);
tv.setText("爱一个人好难"); AssetManager mgr = getAssets();//AssetManager---管理应用程序的资产文件,在项目工程的assets文件夹下:
Typeface tf = Typeface.createFromAsset(mgr, "fonts/DroidSansFallback.ttf");
tv.setTypeface(tf);
}
}

2. 总结:

(1)在开发软件的过程中,两个activity之间的通讯可以通过bundle类来实现,它类似于Map,用于存放key-value名值对形式的值。遇到过这样一种情况,就是没有create bundle,但是当你使用intent.putExtra之后,在另一个被call的activity中,会有bundle被传递过去,
原因就是因为intent.putExtra时,系统会检测有没有bundle,如果没有,则新建一个。所以下面这两个语句的等效的:

Intent intent = new Intent(this,xxx.class);
intent.putExtra("test", true); startActivity(intent);

和:

Intent intent = new Intent(this,xxx.class);
Bundle bundle = new Bundle();
bundle.putBoolean("test", true);
intent.putExtras(bundle);
startActivity(intent);

这里的原因是我们可以追踪到putExtras()方法的底层如下:

public Intent putExtra(String name, String value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putString(name, value);
return this;
}

Android(java)学习笔记131:Intent启动别的Activity的更多相关文章

  1. Android开发学习笔记:Intent的简介以及属性的详解【转】

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  2. 【转载】Android开发学习笔记:Intent的简介以及属性的详解

    http://liangruijun.blog.51cto.com/3061169/634411/ 一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent ...

  3. Android:日常学习笔记(6)——探究活动(4)

    Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...

  4. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  5. Android开发学习之LauncherActivity开发启动的列表

    Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果:   建立主Activity:OtherActivity.java [jav ...

  6. Android Fragement学习笔记(三)----PreferenceFragment的使用

    相信大家对Perference都比較熟悉了,也就是我们常说的偏好设置,首选项设置,能够保存一些数据,比如我们在上一次使用的时候的一些内容,希望在下一次启动后依旧生效,而不须要再进行配置那么麻烦.一般这 ...

  7. Android Fragement学习笔记(三)----PreferenceFragment使用

    我相信每个人都Perference大家都比较熟悉,这就是我们常说的偏好,首选项设置,一些数据可以保存.例如,一些元件的,我们使用上次.希望下次启动后仍然生效,烦.一般这个时候我们便会使用perfere ...

  8. Android:日常学习笔记(6)——探究活动(3)

    Android:日常学习笔记(6)——探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...

  9. Android:日常学习笔记(5)——探究活动(2)

    Android:日常学习笔记(5)——探究活动(2) 使用Intent在活动之间穿梭 什么是Intent Intent时Android程序中各组件之间进行交互的一种重要方式,他不仅可以指明当前组件想要 ...

  10. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

随机推荐

  1. NopCommerce架构分析之参考资料

    http://www.cnblogs.com/RobbinHan/archive/2011/11/30/2269537.html 依赖注入框架Autofac的简单使用 http://www.cnblo ...

  2. Ext基础一(转载)

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  3. android——创建camera应用(译)

     只是选择相机部分来翻译.下面是主要内容 有些开发者可能需要Camera的接口,来定制自己程序的外观和特殊功能.创建自定义的Camera界面比使用using an Intent需要编写更多的代码,但是 ...

  4. HDU 4614-Vases and Flowers(线段树区间更新)

    题意: n个花瓶(0-n-1) 现有两个操作, 操作1 给a,f 从a位置开始向后连续插f个花(一个花瓶插一个)若当前花瓶有花则向后找,直到n-1位置如果还有多余的花则丢掉求查完花的第一和最后一个位置 ...

  5. HDU 1560 DNA sequence DFS

    题意:找到一个最短的串,使得所有给出的串是它的子序列,输出最短的串的长度,然后发现这个串最长是40 分析:从所给串的最长长度开始枚举,然后对于每个长度,暴力深搜,枚举当前位是哪一个字母,注意剪枝 注: ...

  6. Can't find file: './mysql/plugin.frm' (errno: 13)[mysql数据目录迁移错位]错误解决

    大概需要4个步骤,其中第1步通过service mysql stop停止数据库,第4步通过service mysql start启动数据库. 第2步移动数据文件,不知道是否为Ubuntu智能的原因,移 ...

  7. html2canvas 网页截图 下载 上传

    利用html2canvas插件 对网页截图 并下载和上传图片. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...

  8. Vmware Ubuntu 虚拟机与Windows主机共享文件夹

    概述: 1.安装Vmware tool 2.设置共享文件夹并选择总是连接 3.运行命令挂载共享文件夹 前两步很简单,第三步在root权限下运行命令:mount -t vmhgfs .host:/ /m ...

  9. php self

    self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量. 假如我们使用类里面静态(一般用关键字static)的成员,我们也必须使用self来调用. 还要 ...

  10. STC12C5A60S2片内存储器介绍

    STC12C5A60S2内部集成RAM 1280字节,其中 内部RAM(data):256 Byte 内部扩展RAM(xdata):1024 Byte 支持片外扩展RAM: 64kB STC12C5A ...