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

Android中Intent传递对象的两种方法(Serializable,Parcelable)

2014-07-23 13:12 621 查看





1.主页包含两个线性布局。 fragment1 he fragment2 可以通过主实现接口,从中定义接口。实现数据的传递。

2.fragment 中跳转到acitiviy --可以直接跳转

creat-onceratview---onactivitycreat

方式一

(在fragment中传递)通过bundle传递 序列化对象--activity

Studnet nTestObject = new Studnet("杨卫超", "男"); --通过两种序列化之间传值,必须实现相应的接口

Bundle nBundle = new Bundle();

nBundle.putSerializable("seri", nTestObject);

Intent intent=new Intent(getActivity(),detailActivity.class);

intent.putExtra("nihao",nBundle);

getActivity().startActivity(intent);

在activity中进行接收

Intent intent=getIntent();

Bundle bundle= intent.getBundleExtra("nihao");

Studnet studnet= (Studnet) bundle.getSerializable("seri");

然后进行打印出去

方式二

使用parcel(包裹)---parcelable容器 来传递 parcel对象

//发送端

Studnet nTestObject = new Studnet("杨卫超", "男");

Intent intent=new Intent(getActivity(),detailActivity.class);

intent.putExtra("parcelable",nTestObject);

getActivity().startActivity(intent);

//接收端

Intent intent=getIntent();

Studnet studnet=intent.getParcelableExtra("parcelable");

对象需要实现 implements Parcelable

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel parcel, int i) {

parcel.writeString(name);

parcel.writeString(sex);

}

public static final Parcelable.Creator<Studnet> CREATOR=new Parcelable.Creator<Studnet>() {

@Override

public Studnet createFromParcel(Parcel parcel) {

Studnet studnet=new Studnet();

studnet.name=parcel.readString();

studnet.sex=parcel.readString();

return studnet;

}

@Override

public Studnet[] newArray(int i) {

return new Studnet[0];

}

};

https://github.com/inferjay/AndroidDevTools/ 开发包下载

/article/2947841.html 传递parclebal

/article/1445923.html

/article/1445923.html

总结“写了一上午,总算知道的七七八八,fragment----fragment之间传值 fragment 和activity 之间传值。 activity之间传

使用bundle数据捆 来传递,对于传递对象使用 两种对象的传递方式,关键就是需要对象实现相应的接口

传递不同数据很好理解,再次就不再赘述了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐