android 之 兩個Activity之間的通信


在進行Activity通信的時候遇到了一個問題

這個問題是第一次遇到?通過控制台的報錯以及在網上找的一些內容返現。如果想使用bundle.putSerializable("person",person);進行的數據的傳遞,前提是Person必須要序列化。

在網上了解到,不是將一個類實現了Serializable之后就可以看成是可序列化的類,還需要看這個類的所有屬性是否可以進行序列化。在java的規范中,一個類能否序列化,不但取決於這個類是否實現Serializable接口,還卻決於這個類中的屬性是否可序列化。

    //序列化后的Person對象
    Public class Person implements Serializable{
        private String name;
        private int age;
        private String address;

        public Person(String name,int age,String address)
        {
            this.name = name;
            this.age = age;
            this.address = address;
        }

        ...

        public String()
        {
            return "name="+name+" age="+age+" address="+address;
        }
    }
    Intent intent = new Intent(this,xxxx.class)
    
    intent.setAction("xxxxxxxxxxxxxxxxx");//使用隱式方式調用Activity

    Bundle bundle = new Bundle();

    Person person = new Person("Sam",23,"beijing");

    bundle.putSerializable("person",person);

    intent.putExtras(bundle);

    startActivity(intent);

通過以上的方式即可實現Activity之間的數據傳遞。

在使用Bundle進行android 的Activity之間的數據傳遞的時候,不能傳遞較大的數據否則會報異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM