Intent有两个作用:激活组件和附带数据

激活另一个activity的方法
显示意图:
  1.  Intent intent = new Intent();
       intent.setClass(this, OtherActivity.class);//设置要激活的组件
       startActivity(intent);

2. Intent intent = new Intent();
      intent.setClassName(this, "com.example.activity.OtherActivity");//通过反射机制直接得到,包+activity.
       startActivity(intent);
 
   3. Intent intent = new Intent();
       intent.setComponent(new ComponentName(this, OtherActivity.class));  //设置组件
       startActivity(intent);

4.Intent intent = new Intent(this,OtherActivity.class);

       startActivity(intent);

     5.   /**
    * 跨应用激活activity,其他应用的包,包加应用的全称,需要其他应用给出权限
* intent.setClassName("com.example.activity", "com.example.activity.OtherActivity");
 */

如果不是action.Main,则需要主动申明Android:exported="true",允许外部访问

附带数据
   在mainActivity中 
 1.      Intent intent = new Intent();
       intent.setClass(this, OtherActivity.class);

       intent.putExtra("name", "姓名");
       intent.putExtra("age",5);      

startActivity(intent);
    在otherActivity中 提取数据
       Intent intent = getIntent();

       String name = intent.getStringExtra("name");
       int age = intent.getIntExtra("age", 0);//0是缺省值

2.bundle对象存放数据
      Intent intent = new Intent();
      intent.setClass(this, OtherActivity.class);

// 批量添加
Bundle budle = new Bundle();
budle.putString("name", "姓名");
budle.putInt("age", 5);
intent.putExtras(budle);
        startActivity(intent);

otherActivity不用改,也可以采用另一种做法
          Bundle bundle = intent.getExtras();

String name=bundle.getString("name");
int age =bundle.getInt("age");

需要otherActivity返回结果给Mainactivity
     这种需求需要我们改变打开的方式

把startActivity(intent)改成
         startActivityForResult(intent, 200);//200是请求码,用于区分哪部分调用
   再重写onActivityResult方法 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

String result = data.getStringExtra("result");
Toast.makeText(getApplicationContext(),result, 1).show();
}
 

我们可以在关闭otherActivity时返回结果,也可以定义一个按钮关闭otherActivity返回参数
           public void closeActiviity(){

Intent data = new Intent();
data.putExtra("result", "xxxdja");
setResult(30, data);//设置返回数据,30是返回码
this.finish();//关闭当前activity
}

activity间的传参的更多相关文章

  1. angular 实例笔记之嵌套指令间的传参

    最近在项目中遇到了需要嵌套指令的情况,指令在嵌套后子指令必须获得父指令中的数据来进行判断,但是在写传参的时候遇到了坑,因此记录下来,防止以后遗忘,个人的肤浅理解,欢迎大家留言讨论 首先,关于direc ...

  2. angularjs不同页面间controller传参方式,使用service封装sessionStorage

    这里分享一个我在实际项目中,使用service封装的一个依赖sessionStorage的传参服务. 这里先说下大背景,在我们的实际开发中,登陆之后一般会存在一个token,这个token将会贯穿全场 ...

  3. vue中组件间的传参

    1.父传子 父组件准备一个数据,通过自定义属性给子组件赋值,进行传递 在子组件中通过 props 属性来接收参数 <body> <div id="app"> ...

  4. react中的传参方式

    react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...

  5. Android 发送多个不同的快捷方式(shortcut)到桌面并向其启动的Activity传参

    需求: 对于创建快捷方式到桌面,网上能查到不少资料,但一般都是针对应用程序本身的. 前阵子在做项目时,遇到了一个类似于百度贴吧里面的一个需求:对于每个具体的贴吧,都可以将其发送到桌面(HomeScre ...

  6. webpack+vue 组件间传参(单一事件中心管理组件通信--$root),如果有路由的话会失效

    先给一个例子: <body> <div id="box"> <com-a></com-a> <com-b></co ...

  7. Cookie的格式及组成、页面间传参实例

    做项目需要页面间参数传递,搜索了一下网上的回复,发现可以用cookie解决,借此学习cookie的格式及组成: Cookie由变量名和值组成,类似Javascript变量.其属性里既有标准的Cooki ...

  8. python oop培训文档里面的 正宗oop、多个函数间反复return传参、多个文件无限复制粘贴扣字、无效废物滑稽类4种方式的例子。(2)

    把文档里面说的几种范式发出来. 4种编程范式实现一个人吃喝拉撒长身体的代码.语法很简单,思想模拟了所有程序员写代码时候的代码规划设计想法. 0.我不反对复制粘贴的写法,可以百度搜索复制粘贴网上现有的, ...

  9. vue非父子组件间传参问题

    最近在使用vue进行开发,遇到了组件之间传参的问题,此处主要是针对非父子组件之间的传参问题进行总结,方法如下:一.如果两个组件用友共同的父组件,即 FatherComponent.vue代码 < ...

随机推荐

  1. node.js版本管理(Win) --- nvm-window

    目录 1. 安装 2. 使用 1. 安装 去往Git链接:https://github.com/coreybutler/nvm-windows. 点击下载链接: 选择第一个nvm-noinstall. ...

  2. sparkContext之一:sparkContext的初始化分析

    Spark源码学习:sparkContext的初始化分析 spark可以运行在本地模式local下,可以运行在yarn和standalone模式下,但是本地程序是通过什么渠道和这些集群交互的呢?那就是 ...

  3. web应用目录结构

    news web(应用的名字)||--静态资源和JSP文件都可以直接放在web应用的目录下,浏览器可以直接访问(html/jsp/css)|--WEB-INF 可以没有,但是最好有,一旦有,则结构需要 ...

  4. 使用Bootstrap模态框实现增删改查功能

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 本文实现的是使用模态框实现简单的增删改查的功能. ...

  5. 12_tcp_ip相关概念

    java基础班  网络编程应该提过.大学学计算机或者是通信的对这些东西肯定比较熟一些.主机到网络层是跟硬件相关的一些协议了.上层协议得依赖下层的协议.也就是说它们得联合起来共同工作才能够把数据传输出去 ...

  6. spring使用过程中遇到的问题

    1.出现这样的错误:The type org.springframework.core.NestedRuntimeException cannot be resolved. It is indirec ...

  7. STL中的vector实现邻接表

    /* STL中的vector实现邻接表 2014-4-2 08:28:45 */ #include <iostream> #include <vector> #include  ...

  8. PorterDuffXfermode 图像混合技术在漫画APP中的应用

    此文已由作者游葳授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 写在开头 随着应用开发的深入,视觉同学在完成了页面的基本设计后,再也按耐不住心中的寂寞,开始对各种细节不满意, ...

  9. CF 429B B.Working out 四个角递推

    B. Working outtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutpu ...

  10. Linux下更改mysql版本

    想要更改linux的mysql版本,并不需要重装系统重新选择mysql版本,只需要删除掉原来的mysql然后在安装新的就可以啦 (谨记:一定要做好数据库备份) 详情请参照:大牛博客 over!over ...