方法一:
如果單純的傳遞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();
}