Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[],还有采用实现Serializable、Parcelable接口的类对象传递数据的两种方法:一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object)

例如:

[java] view plaincopyprint?
  1. import android.os.Parcel;
  2. import android.os.Parcelable;
  3. public class Book implements Parcelable {
  4. private String bookName;
  5. private String author;
  6. private int publishTime;
  7. public String getBookName() {
  8. return bookName;
  9. }
  10. public void setBookName(String bookName) {
  11. this.bookName = bookName;
  12. }
  13. public String getAuthor() {
  14. return author;
  15. }
  16. public void setAuthor(String author) {
  17. this.author = author;
  18. }
  19. public int getPublishTime() {
  20. return publishTime;
  21. }
  22. public void setPublishTime(int publishTime) {
  23. this.publishTime = publishTime;
  24. }
  25. public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() {
  26. public Book createFromParcel(Parcel source) {
  27. Book mBook = new Book();
  28. mBook.bookName = source.readString();
  29. mBook.author = source.readString();
  30. mBook.publishTime = source.readInt();
  31. return mBook;
  32. }
  33. public Book[] newArray(int size) {
  34. return new Book[size];
  35. }
  36. };
  37. public int describeContents() {
  38. return 0;
  39. }
  40. public void writeToParcel(Parcel parcel, int flags) {
  41. parcel.writeString(bookName);
  42. parcel.writeString(author);
  43. parcel.writeInt(publishTime);
  44. }
  45. }

实现Serializable接口:

[java] view plaincopyprint?
  1. import java.io.Serializable;
  2. public class Person implements Serializable {
  3. private static final long serialVersionUID = -7060210544600464481L;
  4. private String name;
  5. private int age;
  6. public String getName() {
  7. return name;
  8. }
  9. public void setName(String name) {
  10. this.name = name;
  11. }
  12. public int getAge() {
  13. return age;
  14. }
  15. public void setAge(int age) {
  16. this.age = age;
  17. }
  18. }

这样在Activity中就可编写传递数据代码:

[java] view plaincopyprint?
  1. Intent mIntent = new Intent(this, 地址Activity.class);
  2. Bundle mBundle = new Bundle();
  3. //采用parcelable传输数据
  4. mBundle.putParcelable("data", mBook);
  5. //采用serializable传输数据
  6. mBundle.putSerializable("data", items);
  7. mIntent.putExtras(mBundle);
  8. startActivity(mIntent);

接受数据可以采用:

[java] view plaincopyprint?
  1. Intent intent = getIntent();
  2. ArrayList<Map<String, String>> items = (ArrayList<Map<String, String>>)intent.getExtras().get("data");

转载于:https://www.cnblogs.com/duanweishi/p/4263434.html

Android 开发中使用Intent传递数据的方法相关推荐

  1. Intent传递数据的方法

    Intent传递数据的方法 一.传递的数据是基本类型的 二.传递的数据是对象 使用intent的putExtra()方法,可以将要传递的数据附加到Intent对象,然后使用Intent对象进行数据传递 ...

  2. Android学习之利用Intent传递数据

    你能通过这篇文章学习到什么? 1. 利用intent在两个activity之间传递数据 2. 利用intent在两个activity之间传递数据包 3. 利用intent获取到返回数据 很多人在刚开始 ...

  3. Android 开发中一些很有用但你不知道的方法

    English_Version:https://github.com/jiang111/awesome-android-tips/blob/master/README-en.md这里收集了大家常用的一 ...

  4. Android 开发笔记——通过 Intent 传递类对象

    Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种 ...

  5. android 包裹内容,Android开发中Bundle用法 包裹数据

    SDK里是这样描述:A mapping from String values to various Parcelable types. 它帮助我将数据打包传入intent里面,为使用这些数据提供了便利 ...

  6. Android TabHost中Activity之间传递数据

    例子1: TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost);tabhost.setup(this.getLocalActiv ...

  7. Android开发中完全退出程序的三种方法

    Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里给大家三种比较简单的方法实现. 首先要说明在B中直接使用finish(),接 ...

  8. android代码实现手机加速功能吗,详解Android开发中硬件加速支持的使用方法

    Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存. 开启或关闭硬件加速: 由于硬件加速自身并非完美 ...

  9. android开发中遇到的异常及解决方法

    每次运行项目,可能因为粗心或者哪一行代码没有调用,会导致项目不能运行,出现异常. 以下就是我总结的各种异常,会一直更新. 1. Unable to find explicit activity cla ...

最新文章

  1. 清华大学大数据研究中心2020年RONG奖学金答辩会成功举办
  2. jconsole连接远程Tomcat应用
  3. Android--WebView显示Html,让其中的图片适应屏幕宽度
  4. FPGA实验三——计数器的实现并用SignalTap验证
  5. Spark详解(十一):Spark运行架构原理分析
  6. 如何在Eclipse里显示BPMN格式的流程图
  7. 【转载】程序员技术练级攻略
  8. 也谈PostgreSQL的Vacuum机制及其最佳实践
  9. MySQL 常见面试知识点
  10. ArcGIS 生成要素轮廓线掩膜
  11. springboot主线程_springboot中的多线程.md
  12. 证件照电子版该如何在手机上制作
  13. Ansys 2021中英文切换、背景切换
  14. 【R】 Error in is.data.frame(x) : (list) object cannot be coerced to type 'double'
  15. 【h5py 报错】ImportError: DLL load failed while importing defs: 找不到指定的程序。
  16. 流媒体后视镜前装搭载小幅下滑,远峰与镜泰排位争夺白热化
  17. 算法小程序:倒水问题
  18. 防火墙——隧道技术类型
  19. postfix+extmail邮件系统完整安装
  20. 20190820美团视频一面面经

热门文章

  1. [UE4]子控件Child Widget顶层容器选择
  2. win7重装系统后设置Python2.7环境
  3. 神奇的 Object.defineProperty 解释说明
  4. Codeforces Round #378 (Div. 2) D - Kostya the Sculptor
  5. 一些IOS开发中的小技巧
  6. java批量转换图片格式
  7. plsql 简单介绍
  8. GetWindowText和GetDlgItemText的区别
  9. SANTENDO的大脑训练计划
  10. VC6.0下opencv1.0的环境配置