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