您的位置:首页 > 移动开发 > Android开发

Android对象序列化(Activity之间传递对象,Parcelable小例子)

2013-07-31 18:54 513 查看
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());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐