天天看點

Android Activity之間傳遞資料

一、傳遞基本類型資料

這個比較簡單,Intent都有提供相應的接口方法,直接調用即可。

Android Activity之間傳遞資料

二、傳遞對象(主要是實作對象序列化)

如果想要傳遞對象的話,一般情況下就兩種方法,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();