`
80demon
  • 浏览: 77843 次
  • 性别: 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());

分享到:
评论

相关推荐

    Fragment与Activity使用Bundle传递数据

    4. **注意生命周期**:在使用Bundle传递数据时,需要注意Activity和Fragment的生命周期。当Activity或Fragment被销毁后,它们保存的Bundle数据可能会丢失。因此,对于跨Activity的数据传递,一般推荐使用Parcelable...

    activity与activity利用接口相互传递数据

    当我们需要在两个Activity之间传递数据时,通常有多种方法,如Intent、Bundle、静态变量、文件、数据库等。本教程将聚焦于一种更为灵活的方式:通过接口进行数据传递。这种方式在某些复杂场景下特别有用,例如当数据...

    android bundle和activity之间交换数据

    当创建一个新的Activity实例时,我们可以通过Intent传递数据到目标Activity,而这些数据通常会打包到Bundle中。 ### 3. 将数据放入Bundle 要将数据放入Bundle,你需要创建一个Bundle对象,然后使用`put`方法来添加...

    Bundle传递数据方式

    在Android开发中,Bundle是一个非常重要的工具类,用于在组件之间传递数据。它通常被用于Activity、Fragment或者Intent之间的数据交换。本篇文章将详细讲解Bundle的两种主要数据传递方式:传递简单数据和传递自定义...

    Fragment与Activity传递数据

    4. **调用接口方法**:在需要传递数据的时机,Fragment调用接口中的方法,将数据作为参数传递给Activity。 例如: ```java public interface OnDataPassListener { void onDataPass(String data); } public class...

    Activity传递数据到另一个Activity并显示

    本教程将详细讲解如何在`Activity`之间传递数据,包括使用`Intent`和`Bundle`来实现实现简单功能,这对于初学者来说非常实用。 ### 1. `Intent`的使用 `Intent`是安卓系统中的一个核心组件,它用于表示应用程序中...

    bundle传递基本数据,Parcelable类型数据,Serializable类型数据

    在Android应用开发中,`Bundle` 是一个非常重要的工具类,它主要用于在不同组件之间(如Activity、Fragment、Intent)传递数据。`Bundle` 实现了`Parcelable`接口,这使得它可以高效地存储和恢复数据。本篇将详细...

    Android用Bundle传递数据并返回结果

    在Android应用开发中,Intent是连接各个Activity的主要桥梁,它用于启动新的Activity并传递数据。在某些场景下,我们可能需要从一个Activity启动另一个Activity,执行一些操作后,将处理的结果回传到原来的Activity...

    Activity review activity之间的数据传递

    通过Intent,我们可以将基本数据类型(如字符串、整数等)、Parcelable对象、Serializable对象以及额外的数据捆绑到Intent中,然后在启动新Activity时传递这些数据。 1. 使用putExtra()和getExtra()方法:这是最...

    两个activity之间的数据传递

    在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本教程将详细讲解如何在两个Activity之间实现数据传递,主要涉及三种常见方法:Intent的Extra数据、Bundle对象以及使用...

    Android-Activity之间数据传递的多种方式

    二、Bundle传递数据 Bundle是Android中的一个容器类,可以存储键值对,它通常与Intent结合使用。当Intent不能直接传递某些复杂类型时,可以将数据放入Bundle,然后通过Intent传递。 三、静态成员变量和单例模式 ...

    Activity之间传递数据

    "Activity之间传递数据"这一主题,主要涉及如何使用Intent对象在不同的Activity之间传递各种类型的数据,包括基本数据类型、字符串、数组、集合以及自定义对象等。在Android中,Intent不仅用于启动新的Activity,还...

    通过Intent实现Activity之间的切换,并传递数据

    数据可以通过putExtra()方法添加到Intent中,类型包括基本数据类型、Parcelable、Serializable等。在接收端,通过getExtra()方法获取这些数据。例如,传递一个字符串: ```java // 发送端 Intent intent = new ...

    Fragment 与 Activity之间传递数据

    通过setArguments方法,我们可以方便地在创建Fragment时传递数据,使得组件间的协同工作变得更加灵活和高效。在实际项目中,应根据具体需求选择最适合的通信方式,以保证代码的可维护性和性能。

    Android例子源码Activity间的数据传递

    除了直接通过Intent传递数据,还可以将数据封装到Bundle中,然后在需要的地方解封。 6. **startActivityForResult()**: 当需要从目标Activity返回数据时,可以使用startActivityForResult()。在目标Activity完成时...

    两个Activity之间传递参数的代码

    在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本篇文章将详细讲解如何在Android的两个Activity之间传递参数,并通过给出的`LoginActivity.java`和`MainActivity.java...

    Android 数据传递(Intent、Bundle、Serializable、Parcelable等)

    - 启动新的Activity,通过setAction(), setFlags()等方法设置操作,通过putExtra()传递数据。 - 启动或绑定Service,同样可以携带数据。 - 发送Broadcast,通过BroadcastReceiver接收并处理数据。 **Bundle的使用...

    安卓activity间的数据传递

    当我们启动一个新的Activity时,可以通过Intent对象传递数据。在Intent的构造函数中,我们可以传入目标Activity的类名,然后在Intent的putExtra()方法中添加数据。例如,传递一个字符串: ```java Intent intent ...

    andorid 利用Intent 传递Bundle包

    这些示例可能包括创建Bundle,将不同类型的值放入Bundle,然后通过Intent发送,以及在目标Activity中正确解析这些值。 为了更好地理解这个过程,你可以查看源代码,学习如何在实际应用中使用Intent和Bundle。这将有...

    activity间的数据传递Demo

    "activity间的数据传递Demo"就是一种常见的实践,它主要涉及的是Intent的使用,Intent是Android系统中用于启动组件(如Activity、Service等)并传递数据的重要工具。在本教程中,我们将深入探讨如何在不同的Activity...

Global site tag (gtag.js) - Google Analytics