一、傳遞基本類型資料
這個比較簡單,Intent都有提供相應的接口方法,直接調用即可。
二、傳遞對象(主要是實作對象序列化)
如果想要傳遞對象的話,一般情況下就兩種方法,Serializable方式,Parcelable方式。
http://blog.csdn.net/wei_lei/article/details/50515093
三、傳遞Map和ArrayList
1.ArrayList的話有直接的接口方法可以調用
發送 intent.putStringArrayListListExtra(String name,ArrayList<String>value);不過這個方法指定了類型隻能是String.
不過上面講到了如何傳遞對象,那麼隻要将執行個體對象進行序列化,再把整個ArrayList進行傳遞就可以了。
intent.putExtra("name",arrayList);
getIntent.getSerializableExtra("name");
2.HashMap傳遞
原理也是定義一個類實作序列化
public class SerMap implements Serializable {
public HashMap<Integer,Bean> map;
public SerMap(){
}
public HashMap<Integer, Bean> getMap() {
return map;
}
public void setMap(HashMap<Integer, Bean> map) {
this.map = map;
}
}
将需要傳遞的map,通過setMap()方法傳入,最後再将SerMap對象發送出去
SerMap serMap=new SerMap();
//傳遞map到SerMap 中的map,這樣資料就會傳遞到SerMap 中的map中。
serMap.setMap(resultMap);
//建立Bundle對象,存放實作可序列化的SerMap
Bundle bundle=new Bundle();
bundle.putSerializable("name",serMap); intent.put(bundle); startActivity(intent);
在需要接收的地方接收資料
Bundle bundle = intent.getExtras();
SerMap serializableMap = (SerMap) bundle
.get("name");
HashMap<Integer,Bean> resultMap = serializableMap.getMap();