Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。

一、Activity跳转

方法一
Intent intent = new Intent(A.this, B.class); 
startActivity(intent)

方法二
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivity(intent);

实现从A跳转到B(A、B均继承自Activity)

二、传递数据

Activity A 传递数据

方法一
Intent intent = new Intent();
intent.setClass(A.this, B.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 22);

startActivity(intent);

方法二
Intent intent = new Intent(A.this, B.class); 
Bundle bundle = new Bundle();
bundle.putString("name", "xy");
bundle.putInt("age", 22);

intent.putExtras(bundle);
startActivity(intent);

Activity B 接收数据

// 获取参数1
Intent intent = this.getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 22); // 缺省值为22

// 获取参数2
Bundle bundle = intent.getExtras();
String name2 = bundle.getString("name");
int age2 = bundle.getInt("age", 22);

两种获取参数方式均可,并不是和传参1,2方法一一对应

三、Activity返回值

跳转后前一个Activity已经被destroy了。如若要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下

1.从A页面跳转到B页面时不可使用startActivity()方法,而要使用startActivityForResult()方法

2.在A页面的Activity中,需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法

Activity A

// 有返回值的Activity
 public void openNewActivity2(View v)
 {
  Intent intent = new Intent();
  intent.setClass(this.getApplicationContext(), OtherActivity2.class);
  intent.putExtra("name", "xy");
  intent.putExtra("age", 20);
  startActivityForResult(intent, 1);
 }

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {
  // requestCode用于区分业务
  // resultCode用于区分某种业务的执行情况
  if (1 == requestCode && RESULT_OK == resultCode)
  {
   String result = data.getStringExtra("result");
   Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
  }
  else
  {
   Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
  }
 }

Activity B

public void close(View v)
 {
  Intent intent = new Intent();
  intent.putExtra("result", "返回值");
  this.setResult(RESULT_OK, intent); // 设置结果数据
  this.finish(); // 关闭Activity
 }

四、总结

以上采用的意图intent均是显示意图。

参考地址:http://www.cnblogs.com/feng88724/archive/2011/02/10/1961225.html

http://blog.sina.com.cn/s/blog_67aaf44401015z5w.html

Android开发10——Activity的跳转与传值的更多相关文章

  1. 5.10学习总结——Activity的跳转和传值

    使用sharedpreference是对信息的存储,也可以进行传值,今天通过查找资料,学习了Activity的跳转和传值方法. 跳转 1.显示跳转 4种方法 1 2 3 4 5 6 7 8 9 10 ...

  2. Android开发之---Activity生命周期

    Android开发中,有四大组件:Activity.Service.Content Provider.Broadcast Receiver,可以说,activity的使用是最频繁的了,这里来梳理一下与 ...

  3. Android开发10:传感器器及地图相关应用

    前言 啦啦啦~各位小伙伴们好~经过这一学期的Android知识的学习,我们学到了很多和Android开发相关的知识,这一学期的学习也要告一段落了. 一起进入我们今天的相关内容~这次我们将一起学习使用 ...

  4. Android开发在Activity外申请权限调用相机打开相册

    问题描述: 最近在项目中遇到一个需要调用相册和打开相机的需求,但是,在Android 6.0以后,调用相册属于危险权限,需要开发者动态获取,这就意味着我们申请权限是与Activity绑定的,但如果一个 ...

  5. Android开发学习—— activity

    activity生命周期 #Activity生命周期###void onCreate()* Activity已经被创建完毕###void onStart()* Activity已经显示在屏幕,但没有得 ...

  6. Android开发之---Activity启动模式

    在Android开发中,启动一个新的activity我们可以使用startActivity或startActivityForResult,Android系统使用栈的方式来管理一个APP的页面显示与保存 ...

  7. Android课程---Activity的跳转与传值(转自网上)

    Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据.   Intent是Android一个很重要的类.Intent直译是“意图”,什么是意图呢?比如你想从这个 ...

  8. android入门:activity之间跳转,并且回传参数

    介绍:         两个activity进行跳转,在跳转过程中,将message由MainActivity传递到secondActivity,并且当secondActivity退回至MainAct ...

  9. 详解Android开发中Activity的四种launchMode

    Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMod ...

随机推荐

  1. (转)Unity中武器与人物的碰撞检测

    自:http://blog.csdn.net/Monzart7an/article/details/24435843 目前来说有三种思路,其实前两种算变种了: 1.动画关键帧回调 + 范围检测. 这个 ...

  2. Java 程序内存分析

    转自:http://www.iteye.com/topic/528230 java程序内存主要分为了2个部分,包括stack segment(栈内存区).heap segment(堆内存区). 在分析 ...

  3. mondrian4 kylin saiku 整合踩坑记录

    1 先说了版本: Mondrian 4 .kylin2.2 .saiku 3.15 2 saiku 3.15 使用的xml是基于 mondrian4 的schema的xml.判断是不是mondrian ...

  4. java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager

    解决方案:一.右击项目->properties->Java Build Path->Order and Export,在需要引用的包前面打勾.二.Project->Clean. ...

  5. 栈溢出笔记1.3 准备Shellcode

    经过1.1和1.2节的讲述,我们已经知道了怎样更改EIP的值. 程序运行函数之后将跳转到我们设定的位置開始运行,因此,我们须要准备一个自己的程序,接手后面的工作.这是一个什么样的程序?是一个C语言编写 ...

  6. SVN、TortoiseSVN相关问题

    主要记录一些日常操作出现的问题: 1.upgrade working copy: SVN客户端升级或降级的时候,在本地已经下载workspace右键会显示upgrade working copy. 无 ...

  7. 如何理解VB窗体中的scale类属性及width height属性之间的关系

    如何理解VB窗体中的scale类属性及width height属性之间的关系 VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关系是许多VB初学者难以理解 ...

  8. win7 登录后只能使用“临时配置文件”,原来的配置文件无法启用!

    这个问题,修改注册表就可以解决. 开始-> 运行-> 输入regedit,回车, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur ...

  9. 〖Linux〗使用Qt5.2.0开发Android的NDK应用程序

    2013年12月11日,Qt发布了其新的Qt版本:Qt5.2.0: 利用这个新的版本,我们可以很轻松地制作出Android手机的NDK应用程序. 开发环境:Ubuntu13.10 x86_64 下载链 ...

  10. 〖Ruby〗Ruby运算符/优先级

    优先级 能否重写 运行符 描述 最高 Y [] []= 数组下标 数组元素赋值 Y ** 冥乘 Y ! ~ + - 非 位非 一元加 负号 Y * / % 乘 除 模 Y + - 加 减 Y > ...