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. 洛谷 2668&2540 斗地主——搜索+贪心+dp

    题目:https://www.luogu.org/problemnew/show/P2540 发现如果没有顺子,剩下的可以贪心.所以搜索顺子怎么出,然后贪心. 这样只能过不加强版.原因是贪心的时候难以 ...

  2. ubuntu16.04 + CUDA 9.0 + opencv3.3 安装

    安装前的准备 CUDA 9.0 安装,可以参看Ubuntu16.04 + cuda9.0 + cudnn7.1.4 + tensorflow安装 opencv 3.3.0 下载 ippicv_2017 ...

  3. 利用python数据分析panda学习笔记之基本功能

    1 重新生成索引 如果某个索引值不存在就引入缺失值 from pandas import Series,DataFrame import pandas as pd import numpy as np ...

  4. roguelike地牢生成算法

    文章原地址 上一个地图生成算法,这一次是一个地牢的生成算法,是一个国外的人写的算法,用dart语言写,我把它改成了unity-c#. 原作者博客地址:Rooms and Mazes: A Proced ...

  5. CodeForces 359D Pair of Numbers (暴力)

    题意:给定一个正整数数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间的每个元素. 析:暴力每一个可能的区间,从数组的第一个元素开始考虑,向两边延伸,设延伸到的最左边的点为l, 最右边的点为 ...

  6. 移动端UI资源

    1.Flat UI Free http://designmodo.github.io/Flat-UI/ 2.POP 原型工具 http://mobilehub.io/products/pop 3.ei ...

  7. JAVA基础--JAVA API常见对象(其他API)13

    一.其他API 1.System类 system类中的方法和成员变量都是静态的, 不需要创建System对象就可以直接使用. /* * 演示System的使用 */ public class Syst ...

  8. MFC的CString使用

    CString没有基类.一个CString对象由可变长度的一队字符组成.CString使用类似于Basic的语法提供函数和操作符.连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组 ...

  9. unity gl 画线

    using UnityEngine; using System.Collections; public class TGLLine : MonoBehaviour { private static M ...

  10. PyCharm的一些使用技巧

    定位到函数定义 在函数名处 Ctrl + B 就会快速定位到函数定义处 在Console中执行文件 全选内容后,右键菜单 Execute Selection in Console 或者快捷键 Alt ...