`
jk138
  • 浏览: 150368 次
  • 性别: 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;

/** 
*@Copyright:Copyright (c) 2008 - 2100 
*@Company:Sagret
*@Author:fengcunhan fengcunhan@gmail.com 
*@Package:com.bundletest.model.fneg 
*@FileName:Book.java
*@Time:2010-12-19 
*@User:feng
*/
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类,得到Book对象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);
}

 在另一个Activity中获取传递过来的book对象,并显示:

 

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());
 
分享到:
评论
1 楼 stoneyulu 2014-05-11  
很好,正需要要!用来在thread和activity之间传数据

相关推荐

    Android中传递对象

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

    android 面试2

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

    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开发教程.rar

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

    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 内存...

    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的数据类型和类型...

    疯狂Android讲义源码

     4.1.4 使用Bundle在Activity之间  交换数据 181  4.1.5 启动其他Activity并返回结果 185  4.2 Activity的回调机制 189  4.3 Activity的生命周期 190  4.3.1 Activity的生命周期演示 190  4.3.2 Activity与...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 ...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 ...

    疯狂Android讲义.part2

    4.1.4 使用Bundle在Activity之间 交换数据 181 4.1.5 启动其他Activity并返回结果 185 4.2 Activity的回调机制 189 4.3 Activity的生命周期 190 4.3.1 Activity的生命周期演示 190 4.3.2 Activity与Servlet的相似性...

    疯狂Android讲义.part1

    4.1.4 使用Bundle在Activity之间 交换数据 181 4.1.5 启动其他Activity并返回结果 185 4.2 Activity的回调机制 189 4.3 Activity的生命周期 190 4.3.1 Activity的生命周期演示 190 4.3.2 Activity与Servlet的相似性...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 ...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 ...

    Google Android SDK开发范例大全的目录

    3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 ...

    Google+Android+SDK开发范例大全

    3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——...

Global site tag (gtag.js) - Google Analytics