在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 系统中,可以用Bundle或Intent来保存和传递数据。我们有时由于程序某种需要,可能需要传递各种各样的自定义对象,只传递简单类型的数据是不够的。但这些对象在Activity之间不能直接传递,用什么...
Android 中Activity 之间传递参数 1.传递简单数据 在A Activity中 findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() { ...// 对基础的数据类型进行传递 i.putExtra(data
一、Bundle进行IPC介绍 四大组件中的三大组件(Activity、Service、Receiver)都是支持在Intent中传递Bundle...Bundle不支持的类型无法通过它在进程间传递数据。 二、使用方法 1.打包数据发送 Intent intent1 = ne
虽然Bundle对象通常用于传递原始数据类型(字符串,整数,浮点数,长整数),但Fragment对象不仅可以用于传递原始数据类型,还可以传递非原始数据类型(HashMap,ArrayList和custom员工或学生之类的班级) 视频: ...
1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本 2:八种数据类新对应数组和CharSequece文本数组 3:Bundle传值 4:ArrayList集合 5:Serializable传递对象 6:Parcelable传递对象
在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List类型、List<Object>类型和全局变量等等的需求。本文就是介绍怎么传递这几种类型的参数。 一、传递List和List 以下以传递List为例,...
(2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系 和需要传递参数两种情况)。 (3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void ...
extra 附加信息,除了data之外,还可以通过extra附加信息,extra属性使用Bundle类 型进行数据传递; component 组件,显式指定Intent的目标组件的名称; type 数据类型,显式指定Intent的数据类型; 3. Service组件...
片段演示3 (Android)练习使用Bundle对象将数据从Activity传递到片段 有两种方法可以将数据从活动传递到片段 使用捆绑对象 ... Bundle对象通常用于传递原始数据类型(String,int,float,long)
16、Intent传递数据时,下列的数据类型那些可以被传递(ABCD) A、Serializable B、charsequence C、Parcelable(邮包类型) D、Bundle 17、Android中使用Menu时可能需要重写的方法(AC) A、onCreateOptionsMenu() B、...
Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选) A、Serializable B、charsequence C、Parcelable D、Bundle 13.android 中下列属于Intent的作用的是(c) A、实现应用程序间的数据共享 B、是...
3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关...
3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关...
� 丰富的数据业务,将导致数据流量的显著增加 。 � 手机来源增加,价格更为低廉。 对软件开发者的影响 � 因为 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 内存泄露优化 493 15.1.4 ...
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 内存...
可传递Bundle支持的所有数据类型; 支持自动注入参数到目标界面; 支持获取Fragment; 支持全局、局部过程监听:降级、打开后等; Api简单、实现高性能; 二、应用场景 Module内、跨Module界面跳转,界面解耦; 界面...
/ 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的数据类型和类型...