Android Activity之間傳遞非原始數據類型

         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){

  1.  WeiboListItem single_info=weibolist.get(position);  
  2.             Intent intent=new Intent(Test.this,Single_view.class);  
  3.             Bundle mbundle=new Bundle();  
  4.             mbundle.putSerializable("single_info", single_info);  
  5.             intent.putExtras(mbundle);  
  6.             //intent.putExtra("single_info", single_info);  
  7.             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

發佈了8 篇原創文章 · 獲贊 17 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章