在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());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值