//发送数据
Intent intent = new
Intent(activity01.this,activity02.class);
intent.putExtra("key",ob); //ob是实现了上面两个接口其中一个的类的对象
this.startActivity(intent);
//接收数据
Intent intent =
this.getIntent();
//如果发送的数据是实现了Serializable接口的,
Object ob =
intent.getSerializableExtra("key");
//如果发送的数据是实现了Parcelable接口的,
Object ob =
intent.getParcelableExtra("key");
接下来就来具体说说怎么实现Parcelable,Serializable接口,
假设我们现在有这样一个简单的类,
class
MyClass{
String str;
int
data;
public void setStr(String
str){
this.str = str;
}
public String
getStr(){
return str;
}
public int getData() {
return
data;
}
public void setData(int data)
{
this.data =
data;
}
}
我们想让它在Activity之间传递,可以让它先实现Parcelable或Serializable接口,然后它就可以在Activity之间传递了。
一.实现Parcelable接口
class MyClass implements Parcelable{
String
str;
int data;
public
void setStr(String str){
this.str =
str;
}
public String
getStr(){
return str;
}
public int getData() {
return
data;
}
public void setData(int data)
{
this.data = data;
}
//需要实现的Parcelable接口方法
public int describeContents()
{
// TODO Auto-generated method stub
return
0;
}
//需要实现的Parcelable接口方法
public void
writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated
method stub
//写入数据
dest.writeString(str);
dest.writeInt(data);
}
//除此之外,我们还需要定义一个声明了Parcelable.Creator接口的静态变量,
public static final
Parcelable.Creator<MyClass>
CREATOR
= new Parcelable.Creator<MMyClass>() {
//需要实现的Creator接口方法
public
MyClass createFromParcel(Parcel source) {
//获取数据
MyClass myClass = new MyClass();
myClass.str = source.readString();
myClass.data
=
source.readInt();
return myClass;
}
//需要实现的Creator接口方法
public
MyClass[] newArray(int size)
{
return new
MyClass[size];
}
};
这样总算实现了Parcelable接口了,这个类的对象也可以用来传递了,麻烦是麻烦了点。
二.实现Serializable接口
这个相对前面那种方法来说,非常容易实现。
class MyClass implements
Serializable{
String
str;
int data;
public
void setStr(String str){
this.str =
str;
}
public String
getStr(){
return str;
}
public int getData() {
return
data;
}
public void setData(int data)
{
this.data = data;
}
这样就ok了,是不是很简单,不过用eclipse开发时,会提示警告,我们可以让eclipse帮我们生成一个序列号,
点击黄色警告,然后点击Add generated serial versionID
就可以自动生成一个序列号,
private static final long
serialVersionUID = -9048604587123848184L;
相比较Parcelable接口而言,Serializable简单太多了。
有些android提供的对象,例如Bitmap,它是已经实现了Parcelable接口的类,我们要传递它就不用让它实现接口了,直接就可以使用了,不过要传递Bitmap数组的话,我们要一个一个元素的强制转换。
1.传递单个Bitmap
//发送Bitmap
Intent intent = new Intent(this,XXX.class);
inent.putExtra("key",bitmap);
this.startActivity(intent);
//接收Bitmap
Intent
intent = this.getIntent();
Bitmap bitmap = intent.getSerializableExtra("key");
2.传递Bitmap数组
//发送Bitmap数组
Intent intent = new Intent(this,XXX.class);
inent.putExtra("key",bitmaps);
this.startActivity(intent);
//接收Bitmap数组
Intent
intent = this.getIntent();
Parcelable[]
parcel = intent.getParcelableArrayExtra("key");
Bitmap[]
bitmaps = new Bitmap[parcel.length];
for(int
i=0;i<parcel.length;i++){
bitmaps[i] =
(Bitmap)parcel[i];
}
其它实现了前面两个接口其中之一的对象或者数组都可以采取上面的方式进行发送。
相关推荐
然后,在源Activity中实现该接口,并在需要触发数据传递时调用相应的方法。例如,当用户点击一个按钮时: ```java public class ActivityA extends AppCompatActivity implements DataCallback { // ... @...
在Android应用开发中,Activity是用户界面的基本单元,它们之间的数据传递是十分常见的操作。本文将详细介绍Android中Activity之间数据传递的多种方式及其适用场景。 一、Intent传递数据 Intent是Android系统中...
4. **调用接口方法**:在需要传递数据的时机,Fragment调用接口中的方法,将数据作为参数传递给Activity。 例如: ```java public interface OnDataPassListener { void onDataPass(String data); } public class...
在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本篇文章将详细讲解如何在Android的两个Activity之间传递参数,并通过给出的`LoginActivity.java`和`MainActivity.java...
在安卓应用开发过程中,经常需要在多个`Activity`之间进行数据传递。这种交互对于实现复杂的应用逻辑至关重要,例如用户登录验证、表单填写等场景。本文将详细介绍如何在两个`Activity`(假定为A和B)之间传递数据...
下面将详细阐述如何在Android中进行PopupWindow与Activity的数据传递。 首先,理解PopupWindow的基本概念。PopupWindow是Android SDK提供的一种轻量级弹出窗口,它可以显示在屏幕任意位置,并且可以设置背景透明度...
在Android开发中,Activity间的通信是至关重要的,其中包括数据的传递。当涉及到图片这种大对象时,我们需要采取一些特殊的方法来高效地进行传递。本文将详细介绍三种在Activity间传递图片的方法。 1. 资源ID间传递...
2. **设置Intent或Arguments**:如果从Activity到Fragment传递数据,需要在创建Fragment实例时将Bundle作为参数传递给Fragment的构造函数,或者调用`setArguments(Bundle)`方法。如果是Activity间的跳转,将Bundle...
在提供的压缩包文件"intent"中,可能包含了如何创建Intent、传递数据以及处理返回结果的相关代码示例,通过学习和理解这些代码,你可以更好地掌握Activity之间的值传递技术。在实际开发中,熟练运用这些技巧可以提高...
在Android应用开发中,Activity是用户界面的基本单元,它们之间常常需要进行数据的传递。"Activity review activity之间的数据传递"这个主题聚焦于如何在不同的Activity之间有效地传递信息。理解并熟练掌握这一技能...
总结,BroadcastReceiver是Android系统中实现组件间通信的重要工具,特别适用于在Activity之间传递数据。通过创建BroadcastReceiver,注册它,发送Broadcast,以及在接收端处理数据,我们可以轻松地在两个不同的...
在数据传递中,`Intent`主要用来创建一个从一个`Activity`到另一个`Activity`的通道。 ```java // 创建一个新的Intent Intent intent = new Intent(currentActivity, TargetActivity.class); ``` ### 2. 通过`...
在Android开发过程中,经常会遇到需要在不同的`Activity`之间传递数据的需求,例如用户从一个页面选择一张图片后,在另一个页面显示这张图片等场景。本篇文章将详细探讨如何在两个`Activity`(即`MainActivity`与`...
在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本教程将详细讲解如何在两个Activity之间实现数据传递,主要涉及三种常见方法:Intent的Extra数据、Bundle对象以及使用...
在Android应用开发中,Activity是用户界面的基本单元,它们之间的数据传递是常见的需求。这个"Android例子源码Activity间的数据传递"着重展示了如何在不同的Activity之间有效地传递数据。以下是关于这个主题的详细...
Activity之间的通信是Android系统中不可或缺的一部分,本教程将详细讲解如何在不同的Activity之间进行简单数据传递。 一、基本概念 Activity间的数据传递主要通过Intent进行。Intent不仅用于启动新的Activity,还能...
在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在...
在Android应用中,我们经常需要在不同的Activity之间传递数据,这可能是为了启动新Activity时设置参数,或者在用户完成某操作后返回结果。以下将详细介绍Activity之间如何进行数据传递。 ### 1. 启动Activity时的...
在Android应用开发中,Activity是用户界面的基本单元,它们之间的数据传递是十分常见的操作。"Activity之间传递数据"这一主题,主要涉及如何使用Intent对象在不同的Activity之间传递各种类型的数据,包括基本数据...
Intent是Android系统中用于启动一个Activity或Service,同时也可以用来在组件间传递数据。我们可以通过Intent的putExtra()方法来添加需要传递的数据,然后在接收端通过getExtra()方法获取。对于简单的数据类型(如...