Activity之间传递原始的数据类型很简单,只要在Activity之间的跳转的时候使用Intent携带bundle数据即可,但是这些只能是传递原始的数据类型,如float,Int,String等原始的数据类型,无法传递自定的数据类型,
但是android的设计者却早已经把这个东西想到了,就是在bundle中的两个方法,一个是putSerilizeble(),一个是putLongArray(),这两个方法能够实现对自定义的数据类型进行序列化传递。
但是对对自定义的数据类型进行传递的时候必须先进行序列化操作,也就是自定义的数据必须继承Serilizeble接口或者是Parcelable接口,两个接口的差别是前者是Java语言中就有的,后者是android单独设计的,都是进行序列化操作
可以使用bundle的putSerilizeble(String,Serilizeble)数据,或者是intent的putExtrr(String,Serizlizable)数据,如果自定义的数据类型里面嵌套了其他的数据类型的话,则必须要实现上面两个接口中的其中一个,否则将会报错。
示例代码如下:
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id){
- 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);</span>
}
自定义数据:
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;//用户UID
private String screen_name;//昵称
private String location;//所在地
private String description;//描述
private String avatar_large;//大头像
private String verified_reason ;//认证原因
private String gender;//性别
}
以上是用继承Serializable来实现的,至于继承Parcelable接口方法类似...
转载自:http://blog.csdn.net/ziyanguang1989/article/details/7840456