🍁引言
此笔记是承上启下的,关于为页面添加响应的内容请详看**【Android】如何为组件添加响应**
关于如何实现页面的跳转详看**【Android】如何实现页面的跳转**
🌳基本数据传输
页面间的数据传输是通过intent.putExtra()方法实现的
如下可见它重载了很多方,各种数据类型的传输都有封装实现,这里就浅拿字符型数据举个栗子吧
putExtra()与java中的HashMap的put()方法有诸多相似,它也有两个参数,前者为值名,后者为值
值名作为唯一的区分标志用于在其他页面区分不同的值,而值就是要传输的内容
在新界面的Activity中捕获传输来内容,并将其设置在文本组件上
可见值已经成功传入新的界面了,并设置成功
🌺对象类型数据传输
在项目开发中,我们往往不是传输单个的,没有关联的数据,而是一组相互有联系的数据,比如我们要将一个学生的学号,年龄,姓名等等信息传过去,用基本数据类型传输就不再合适
可以看到,putExtra()方法有重载一个第二个参数为Serializable value的用法
这就又牵涉java当中的序列化的知识了,这里不铺开讲述,java将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的。
序列化的作用就是:将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。
那么我们创建一个学生类并继承Serializable接口实现序列化
小贴士:
这里只是创建一个java类,并不是创建Activity,注意两者区别
序列化学生类
package com.unity3d.lessonapp3;
import java.io.Serializable;
public class Student implements Serializable {
String id;
int age;
String name;
}
在新界面里,我们捕获到student对象,并将它的属性拼接为一个字符串显示在文本控件上
|