Android中如何实现两个Activity中传递自定义数据

在开发中,本人遇到这样问题想在两个activity之间传递某个自定义类对象,但是使用Bundle发现里面只能传送已经封装好的int,float,String等类型,自定义的类无法发送。

后来上网查阅相关资料发现Bundle中有这两个方法putSerializable()和putLongArray()两个方法对自定义数据进行序列化即可实现所希望的功能。

需要注意的是你所传递的自定义数据必须implements Serializable或者Parcelable接口,可以用bundle putSerializable(String,Serizlizable)数据或者直接用intent putExtrr(String,Serizlizable)数据。如果该自定义数据里面嵌套了其他自定义数据类型,则必须都要implements Serializable或者Parcelable接口才行,不然会报错...


贴上部分源码:

	public void onItemClick(AdapterView<?> arg0, View arg1, int position,				long id) {			// TODO Auto-generated method stub					WeiboListItem single_info=weibolist.get(position);			Intent intent=new Intent(Test.this,Single_view.class);			Bundle mbundle=new Bundle();			mbundle.putSerializable("single_info", single_info);			intent.putExtras(mbundle);			//intent.putExtra("single_info", single_info);			startActivity(intent);

自定义数据:

public class WeiboListItem implements Serializable{//继承序列化的类主要是为了方便activity之间传递weiboInfo对象public static final long serialVersionUID = 1L;private String time;private String text;private String source;private String reposts_count;private String comments_count;private UserInfo user;

嵌套数据类型:

public class UserInfo implements Serializable {private static final long serialVersionUID = -609747215688061510L;private String id;//用户UIDprivate String screen_name;//昵称private String location;//所在地private String description;//描述private String avatar_large;//大头像private String verified_reason ;//认证原因private String gender;//性别

以上是用继承Serializable来实现的,至于继承Parcelable接口方法类似...



猜你喜欢

转载自aijuans2.iteye.com/blog/1624420