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

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


🍁引言

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

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

🌳基本数据传输

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

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

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

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

网络异常,图片无法展示
|

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

🌺实体类数据传输

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

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

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

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

网络异常,图片无法展示
|

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

小贴士:

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

网络异常,图片无法展示
|

序列化学生类

packagecom.unity3d.lessonapp3;

 

importjava.io.Serializable;

 

publicclassStudentimplementsSerializable {

   Stringid;

   intage;

   Stringname;

}

 

网络异常,图片无法展示
|

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

相关文章
|
18天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
4月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
41 0
|
5月前
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
116 0
|
3天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
13 0
|
1天前
|
Android开发
定制Android关机界面
定制Android关机界面
|
1天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
1天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
|
3天前
|
Linux Android开发
Android开机不显示bootloader界面
Android开机不显示bootloader界面
7 0
Android开机不显示bootloader界面
|
3天前
|
Android开发
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
Android SystemUI去掉拖动亮度条QSPanel界面隐藏功能
7 0
|
25天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
11 0