intent--Activity之间数据传递之Intent数据传递
intent传值:
4,intent传集合
3,intent传对象,
2,传递后有返回值的情况:
当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,
也可以使用 startActivityForResult (Intent intent, int requestCode);
1,传递后无返回值的情况:从当前Activity传递到目标Activity后有无返回值:
===========
4,intent传集合
但是有的时候又要传递多个实体类。就要把这些实体类的对象放在一个List中传递。
Intent.putExtras(key, value)几乎可以包括各种类型的值,但是却没有类似List<Object>之类的传递参数。
今天用到的时候试了下,
发现可以把list强转成Serializable类型,然后通过putExtras(key, (Serializable)list)方法传递过去。
接受的时候用(List<YourObject>) getIntent().getSerializable(key)就可以接受到List<YourObject>数据了
同样这个实体类必须要实现Serializable接口,切记切记,不然会报错。
3,intent传对象;
Intent不能直接传递t对象,需要通过bundle来传递
向intent中添加数据:
Intent intent_share = new Intent(MainActivity.this,ShareActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("article", article);
intent_share.putExtras(bundle);
startActivity(intent_share);
接收数据:
Bundle bundle = getIntent().getExtras();
Article article = (Article) bundle.get("article");
其中Article是一个实体类,这个类必须序列化才行(实现Serializable接口)。
2,传递后有返回值的情况:
当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,
也可以使用 startActivityForResult (Intent intent, int requestCode);
在起始Activity中,发送数据:
Intent intent = new Intent();
intent.setClass(ThisActivity.this,TargetActivity.class);
intent.putExtra("username",username);//也可以绑定数组
intent.putExtra("userpass",userpass);
startActivityForResult(intent,1);
//需要重写onActivityResult方法
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode,resultCode,intent);
//判断结果码是否与回传的结果码相同
if(resultCode == 1){
String name = intent.getStringExtra("name");
String pass = intent.getStringExtra("pass);
//对数据进行操作
......
}
在目标Activity中,接收数据:
Intent intent = getIntent();
String name = intent.getStringExtra("username");
String pass = intent.getStringExtra("userpass);
//从EditText中获取新的数据给name和pass
name = editText1.getText().toString();
pass = editText2.getText().toString()
//数据发生改变,需要把改变后的值传递回原来的Activity
intent.putExtra("name",name);
intent.putExtra("pass",pass);
//setResult(int resultCode,Intent intent)方法
setResult(1,intent);
//销毁此Activity,摧毁此Activity后将自动回到上一个Activity
finish();
1.传递后无返回值的情况:从当前Activity传递到目标Activity后有无返回值
在起始Activity中,发送数据
Intent intent = new Intent();
intent.setClass(ThisActivity.this,TargetActivity.class);
intent.putExtra("username",username);//也可以绑定数组
intent.putExtra("userpass",userpass);
startActivity(intent);
在目标Activity中,接收数据:
//获得意图
Intent intent = getIntent();
String name = intent.getStringExtra("username");
String pass = intent.getStringExtra("userpass);
也可以适用Bundle(捆)--在起始Activity中,发送数据:
Intent intent = new Intent();
intent.setClass(ThisActivity.this,TargetActivity.class);
//一次绑定多个数据
Bundle bundle = new Bundle();
bundle.putString("username",username);
bundle.putString("userpass",userpass);
intent.putExtras(bundle);
startActivity(intent);
在目标Activity中,接收数据:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("username");
String pass = bundle.getString("userpass");
intent--Activity之间数据传递之Intent数据传递的更多相关文章
- Android activity之间的跳转和数据传递
1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ...
- Android笔记(三) 使得Activity之间可以跳转---Intent
什么是Intent 一个APP肯定不单单由一个Activity构成,我们在使用过程中,经常需要在多个Activity中跳转,Android中Intent可以帮我们来完成在各个Activity中跳转的功 ...
- 在activity之间传递数据
在activity之间传递数据 一.简介 二.通过intent传递数据 1.在需要传数据的界面调用 intent.putExtra("data1", "我是fry&quo ...
- 建立、配置和使用Activity——使用Bundle在Activity之间交换数据
当一个Activity启动另一个Activity时,常常会有一些数据需要传过去——这就像Web应用从一个Servlet跳到另一个Serlvet时,Web应用习惯把需要交换的数据放入requestSco ...
- 杂记之activity之间的跳转
代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xml ...
- 【Android 应用开发】Activity生命周期 与 Activity 之间的通信
一. Activity生命周期 上图 1. Activity状态 激活状态 : Activity出于前台 , 栈顶位置; 暂停状态 : 失去了焦点 , 但是用户仍然可以看到 , 比如弹出一个对话框 , ...
- Activity生命周期 与 Activity 之间的通信
一. Activity生命周期 上图 1. Activity状态 激活状态 : Activity出于前台 , 栈顶位置; 暂停状态 : 失去了焦点 , 但是用户仍然可以看到 , 比如弹出一个对话框 , ...
- Android笔记(二十) Activity中的跳转和值传递
我们知道,一个APP是由若干个Activity组成的,那么各个Acitivity中肯定需要进行跳转以及传递数值以保证App的运行,现总结一下多个Activity之间的跳转和值传递. 显式Intent跳 ...
- Android 写一个Activity之间来回跳转的全局工具类(主要是想实现代码的复用)
废话不多说了,直接上代码,相信大家都能看得懂的. 一.主要工具类 package com.yw.chat.utils; import android.app.Activity; import andr ...
- 37.Activity之间的转换以及数据的传递(Intent)学习
Intent简介: 在一个Androi ...
随机推荐
- java中类加载时机
java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new.getStatic.putStatic或in ...
- 【BZOJ3144】【HNOI2013】切糕
总算做了一道2011以后的省选题了……原题: 图片题面好评! P,Q,R≤40,0≤D≤R,给出的所有的不和谐值不超过1000. 文本样例好评! 恩这个是听妹主席讲过后会写的,首先把每个点拆成链,那么 ...
- day 04 Java并发多线程
http://www.cnblogs.com/hellocsl/p/3969768.html?utm_source=tuicool&utm_medium=referralPS:而JVM 每遇到 ...
- WebService 学习记录
-------------------------------------------PS:这个WebService 服务必须一直开着,关闭就没法访问了 Web Service 教程 一.webser ...
- imrersize函数
imrersize函数: 用法:imresize(图像I,method,倍数) 'nearest'(默认值)最近邻插值'bilinear'双线性插值'bicubic'双三次插值 使用方法: clear ...
- sqler sql 转rest api 的docker 镜像构建(续)使用源码编译
sqler 在社区的响应还是很不错的,已经添加了好多数据库的连接,就在早上项目的包管理还没有写明确, 下午就已经有go mod 构建的支持了,同时也调整下docker 镜像的构建,直接使用git cl ...
- MySQL聚合函数与数据分组
我们最常需要的是汇总数据而不是把他们实际检索出来 确定表中行数(或满足某个条件或包含某个特定值的行数) 确定表中行组的和 找出表列(或所有行或特定列)的最大值,最小值和平均值 聚集函数是运行在行组上, ...
- TypeScript 知识点
TypeScript 通过 类型批注 提供静态类型以在编译时启动类型检查. 基本批注类型是number.bool.string.而弱或动态类型是any. typescript 使用 作用 语句 全局安 ...
- mysql 性能
https://blog.csdn.net/zengxuewen2045/article/category/6388631 #sda 磁盘信息dstat -D sda 3 5 #找出系统瓶颈dstat ...
- php函数总结2
1.匿名参数 func_get_args //获取参数列表的数组 func_get_arg(num) //数组索引 func_num_args() //获取匿名函数的个数 <?php funct ...