Android中为了能够在Activity之间传递值,需要只用Intent中的put函数。
其中bundle.putParcelable可以实现传递对象,但是这个对象的类必须实现Parcelable接口才能够使用。
下面是一个简单的在Activity之间传递对象的例子。
Parcelable类。最主要的类,也就是我们要传送的对象的类,需要实现Parcelable接口。
package com.zeph.android.Parcelable;
import android.os.Parcel;
import android.os.Parcelable;
public class BenParcelable implements Parcelable {
public String name;
public int age;
public String profession;
public BenParcelable(String name, int age, String profession) {
this.name = name;
this.age = age;
this.profession = profession;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getprofession() {
return profession;
}
public void setprofession(String profession) {
this.profession = profession;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flag) {
parcel.writeString(name);
parcel.writeInt(age);
parcel.writeString(profession);
}
public static final Creator<BenParcelable> CREATOR = new Creator<BenParcelable>() {
public BenParcelable createFromParcel(Parcel in) {
return new BenParcelable(in);
}
public BenParcelable[] newArray(int size) {
return new BenParcelable[size];
}
};
private BenParcelable(Parcel in) {
name = in.readString();
age = in.readInt();
profession = in.readString();
}
}
ParcelableActivity类,传递对象的Activity类。
package com.zeph.android.Parcelable;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ParcelableActivity extends Activity {
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.myButton);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
BenParcelable benParcelable = new BenParcelable("BenZeph", 23,
"Java/Android Engineer");
Intent intent = new Intent();
intent.setClass(getApplicationContext(),
GetParcelableActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelable("Ben", benParcelable);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
GetParcelableActivity类,接收序列化对象的Activity类。
package com.zeph.android.Parcelable;
import android.app.Activity;
import android.os.Bundle;
public class GetParcelableActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
BenParcelable parcelable = getIntent().getParcelableExtra("Ben");
System.out.println(parcelable.getName());
System.out.println(parcelable.getAge());
System.out.println(parcelable.getprofession());
}
}
分享到:
相关推荐
android序列化(Parcelable)
android Activity之间数据传递 Parcelable和Serializable接口的使用的具体实例代码,详情请看>http://blog.csdn.net/js931178805/article/details/8268144
Android对象序列化的代码例子。用于演示Parcelable和Serializable两种结构的序列化对象,及其使用时的注意点。
Android多进程通讯AIDL传递Parcelable对象
Android序列化——Serializable与Parcelable
Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat...
NULL 博文链接:https://2528.iteye.com/blog/1849692
activity间传递对象,实现Parcelable 和Serializable传递对象
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...
在Android中用Parcelable序列化虽然效率高,但是比Serializable麻烦很多;现在只要添加一个Jar包就可以省去序列化的过程,很方便。 Jar包在项目里,可以直接使用,也可以查看里面的文本文件"README.md
欢迎下载实现Parcelable接口的方式借助Intent实现Android工程中Activity之间Java对象的传递.zip !
NULL 博文链接:https://sunzone.iteye.com/blog/1998125
Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中...
本文详细对Android中Serializable和Parcelable序列化对象进行学习,具体内容如下 学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行...
Android通过Parcelable和Serializable实现各种类型嵌套序列化
Parcelable序列化实例
Android AIDL传输对象代码 Parcelable 在AIDL client的Activity中点击传输对象按钮查看日志,就会看到对象里面的内容
android messager parcelable数据对象传递demo,关于跨进程通信遇到一些问题的解决,不同应用通信,保持传递的parcelable对象的包名一致即可,其他保持不变。
Activity间要传递数据,很多时候简单的int和string满足不了需求,我们在面向对象中已经习惯了类和对象, 那么下面就说一下如何传递类...一个是Java的序列化(Serializable),另一个是Android的Parcelable序列化方法。
本代码就是简单的Parcelable与Serializable序列化,包括bitmap数组如何在应用中传递...