`
80demon
  • 浏览: 71733 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Activity中通过Bundle传递数据类型

 
阅读更多

 在Android开发中,有时候需要从一个Activity中传递数据到另一个Activity中,在Bundle中已经封装好了简单数据类型,例如String ,int ,float等。但是如果我们想要传递一个复杂的数据类型,比如一个Book对象,该怎么办呢?

  仔细的看了一下Bundle中的方法,其中有一个是putSerializable()方法,Serializable对象是一个可恢复对象接口,我们只需要让Book对象实现Serializable接口,就可以使用Bundle.putSerializable()方法传递Book对象了。废话不多说了,现将代码贴上:

  package com.bundletest.model.fneg;
  import java.io.Serializable;
  public class Book implements Serializable {
  /**
  *
  */
  private static final long serialVersionUID = 1L;
  private String name;
  private String id;
  private String author;
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public String getId() {
  return id;
  }
  public void setId(String id) {
  this.id = id;
  }
  public String getAuthor() {
  return author;
  }
  public void setAuthor(String author) {
  this.author = author;
  }
  }

  Book类:
  if(TextUtils.isEmpty(bookName)||TextUtils.isEmpty(author)||TextUtils.isEmpty(id)){
  Toast.makeText(AndroidBundleActivity.this, "输入框不能为空", Toast.LENGTH_SHORT).show();
  }else{
  Book book=new Book();
  book.setName(bookName);
  book.setAuthor(author);
  book.setId(id);
  Intent intent=new Intent(AndroidBundleActivity.this,RecieveActivity.class);
  Bundle bundle=new Bundle();
  bundle.putSerializable("book", book);
  intent.putExtras(bundle);
  startActivity(intent);
  }

  Intent intent=this.getIntent();
  Bundle bundle=intent.getExtras();
  Book book=(Book)bundle.getSerializable("book");
  nameText.setText("书名:"+book.getName());
  authorText.setText("作者:"+book.getAuthor());
  idText.setText("ID:"+book.getId());

分享到:
评论

相关推荐

    Android中传递对象

    我们知道在Android 系统中,可以用Bundle或Intent来保存和传递数据。我们有时由于程序某种需要,可能需要传递各种各样的自定义对象,只传递简单类型的数据是不够的。但这些对象在Activity之间不能直接传递,用什么...

    Android 中Activity 之间传递参数

    Android 中Activity 之间传递参数 1.传递简单数据 在A Activity中 findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() { ...// 对基础的数据类型进行传递 i.putExtra(data

    Android之使用Bundle进行IPC详解

    一、Bundle进行IPC介绍 四大组件中的三大组件(Activity、Service、Receiver)都是支持在Intent中传递Bundle...Bundle不支持的类型无法通过它在进程间传递数据。 二、使用方法 1.打包数据发送 Intent intent1 = ne

    FragmentDemo4:Android-使用片段对象将数据从活动传递到片段

    虽然Bundle对象通常用于传递原始数据类型(字符串,整数,浮点数,长整数),但Fragment对象不仅可以用于传递原始数据类型,还可以传递非原始数据类型(HashMap,ArrayList和custom员工或学生之类的班级) 视频: ...

    Intent在Activity之间传值的几种方式

    1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本 2:八种数据类新对应数组和CharSequece文本数组 3:Bundle传值 4:ArrayList集合 5:Serializable传递对象 6:Parcelable传递对象

    Android intent之间复杂参数传递方法详解

    在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List类型、List<Object>类型和全局变量等等的需求。本文就是介绍怎么传递这几种类型的参数。 一、传递List和List 以下以传递List为例,...

    android开发——简易计算器的设计报告.doc

    (2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系 和需要传递参数两种情况)。 (3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void ...

    实验四-Android基本组件交互实验.doc

    extra 附加信息,除了data之外,还可以通过extra附加信息,extra属性使用Bundle类 型进行数据传递; component 组件,显式指定Intent的目标组件的名称; type 数据类型,显式指定Intent的数据类型; 3. Service组件...

    FragmentDemo3:练习使用捆绑对象将数据从活动传递到片段

    片段演示3 (Android)练习使用Bundle对象将数据从Activity传递到片段 有两种方法可以将数据从活动传递到片段 使用捆绑对象 ... Bundle对象通常用于传递原始数据类型(String,int,float,long)

    android 面试2

    16、Intent传递数据时,下列的数据类型那些可以被传递(ABCD) A、Serializable B、charsequence C、Parcelable(邮包类型) D、Bundle 17、Android中使用Menu时可能需要重写的方法(AC) A、onCreateOptionsMenu() B、...

    Android面试题(详细答案).doc

     Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle  13.android 中下列属于Intent的作用的是(c)  A、实现应用程序间的数据共享  B、是...

    Google.Android.SDK开发范例大全

     3.10 不同Activity之间的数据传递——Bundle对象的实现   3.11 返回数据到前一个Activity——startActivityForResult方法   3.12 具有交互功能的对话框——AlertDialog窗口   3.13 置换文字颜色的机关...

    Google Android SDK开发范例大全 源码

     3.10 不同Activity之间的数据传递——Bundle对象的实现   3.11 返回数据到前一个Activity——startActivityForResult方法   3.12 具有交互功能的对话框——AlertDialog窗口   3.13 置换文字颜色的机关...

    新版Android开发教程.rar

    � 丰富的数据业务,将导致数据流量的显著增加 。 � 手机来源增加,价格更为低廉。 对软件开发者的影响 � 因为 Android 移动软件平台抱持开放互通的观念,势必吸引不少自由软件的拥护者。 � 开发方向有三个重点 :...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    14.3 JNI的数据类型和类型签名 484 14.4 JNI调用Java方法的流程 486 第15章 Android性能优化 489 15.1 Android的性能优化方法 490 15.1.1 布局优化 490 15.1.2 绘制优化 493 15.1.3 内存泄露优化 493 15.1.4 ...

    Android开发艺术探索

     14.3 JNI的数据类型和类型签名 / 484  14.4 JNI调用Java方法的流程 / 486  第15章 Android性能优化 / 489  15.1 Android的性能优化方法 / 490  15.1.1 布局优化 / 490  15.1.2 绘制优化 / 493  15.1.3 内存...

    EasyRouter:一个简单,稳定和高性能的组件路由框架,它支持UI,方法调用,拦截器,回调以及更多功能

    可传递Bundle支持的所有数据类型; 支持自动注入参数到目标界面; 支持获取Fragment; 支持全局、局部过程监听:降级、打开后等; Api简单、实现高性能; 二、应用场景 Module内、跨Module界面跳转,界面解耦; 界面...

    android开发艺术探索高清完整版PDF

    / 469 13.4.1 使用dex2jar和jd—gui反编译apk / 470 13.4.2 使用apktool对apk进行二次打包 / 470 第14章 JNI和NDK编程 / 473 14.1 JNI的开发流程 / 474 14.2 NDK的开发流程 / 478 14.3 JNI的数据类型和类型...

Global site tag (gtag.js) - Google Analytics