天天看點

android intent 傳遞list或者對象

方法一: 

如果單純的傳遞list<string> 或者list<integer>的話 就可以直接使用 

java代碼 

intent.putstringarraylistextra(name, value)  

intent.putintegerarraylistextra(name, value)  

方法二: 

如果傳遞的是list<object>,可以把list強轉成serializable類型,然後通過 

java代碼  putextras(key, (serializable)list)  

方法傳遞過去,接受的時候用 

java代碼  (list<yourobject>) getintent().getserializable(key)  

就可以接受到list<yourobject>資料了 

但是 切記 你的yourobject類必須要實作serializable接口 

方法三: 

一種是 

java代碼  bundle.putserializable(key,object);  

另一種是 

java代碼  bundle.putparcelable(key, object);  

當然這些object是有一定的條件的,前者是實作了serializable接口,而後者是實作了parcelable接口 

方法四: 

用intent傳來傳去 覺得不友善 我們可以寫一個在application裡面的全局資料 

1、建立一個屬于你自己的android.app.application的子類 

2、在manifest中申明一下這個類, 

3、這時android就為此建立一個全局可用的執行個體,你可以在其他任何地方使用context.getapplicationcontext()方法擷取這個執行個體,進而擷取其中的狀态(變量)。 

繼承application 

java代碼  

class myapp extends application {  

    private string mystate;  

    public string getstate(){  

    return mystate;  

  }  

  public void setstate(string s){  

    mystate = s;  

}  

關于androidmanifest.xml中的配置,原來直接給application加個name就可以了,如下面所示: 

java代碼  <application android:name=".myapp"           android:icon="@drawable/icon"  android:label="@string/app_name">  

使用 

class blah extends activity {  

    @override  

  public void oncreate(bundle b){  

    ...  

    myapp appstate = ((myapp)getapplicationcontext());  

    string state = appstate.getstate();  

}  

繼續閱讀