【Android基础入门】如何实现界面间的数据传输

🍁每日推荐:基础算法无论在研究生面试还是求职面试都是十分重要的一环,这里推荐一款算法面试神器:牛客网-面试神器;算法题只有多刷勤刷才能保持思路与手感,大家赶紧行动起来吧(温馨提示:常见的面试问答题库也很nice哦)
在这里插入图片描述

如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦

🍀【Android】如何实现界面间的数据传输

🍁引言

此笔记是承上启下的,关于为页面添加响应的内容请详看【Android】如何为组件添加响应

关于如何实现页面的跳转详看【Android】如何实现页面的跳转

🌳基本数据传输

页面间的数据传输是通过intent.putExtra()方法实现的

如下可见它重载了很多方,各种数据类型的传输都有封装实现,这里就浅拿字符型数据举个栗子吧

putExtra()与java中的HashMap的put()方法有诸多相似,它也有两个参数,前者为值名,后者为值

值名作为唯一的区分标志用于在其他页面区分不同的值,而值就是要传输的内容

image-20220422101605976

image-20220422102408686

在新界面的Activity中捕获传输来内容,并将其设置在文本组件上

Snipaste_2022-04-22_10-26-41

可见值已经成功传入新的界面了,并设置成功

image-20220422102849272

🌺实体类数据传输

在项目开发中,我们往往不是传输单个的,没有关联的数据,而是一组相互有联系的数据,比如我们要将一个学生的学号,年龄,姓名等等信息传过去,用基本数据类型传输就不再合适

可以看到,putExtra()方法有重载一个第二个参数为Serializable value的用法

这就又牵涉java当中的序列化的知识了,这里不铺开讲述,java将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的。

序列化的作用就是:将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。

image-20220422103500702

那么我们创建一个学生类并继承Serializable接口实现序列化

小贴士:

这里只是创建一个java类,并不是创建Activity,注意两者区别

image-20220422104328399

序列化学生类

package com.unity3d.lessonapp3;

import java.io.Serializable;

public class Student implements Serializable {
    String id;
    int age;
    String name;
}

Snipaste_2022-04-22_10-48-09

image-20220422105142950

在新界面里,我们捕获到student对象,并将它的属性拼接为一个字符串显示在文本控件上

image-20220422105654898

image-20220422105704464

🍁每日推荐:基础算法无论在研究生面试还是求职面试都是十分重要的一环,这里推荐一款算法面试神器:牛客网-面试神器;算法题只有多刷勤刷才能保持思路与手感,大家赶紧行动起来吧(温馨提示:常见的面试问答题库也很nice哦)
在这里插入图片描述

如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦

#安卓工程师##面试#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:55
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务