Intent傳遞對象

來源:互聯網
上載者:User

標籤:

Intent的用法大家比較熟悉了,可以藉助它來啟動活動,發送廣播,啟動服務等。在進行上述操作的時候,還可以在Intent中添加一些附加資料, 以達到傳值的效果,比如在FirstActivity中添加如下代碼

Intent intent=new Intent(HLActivity.this,SecondActivity.class);

intent.putExtra("string_data","hello");

intent.putExtra("int_data",100);

startActivity(intent);

這裡調用了Intent的putExtra()方法來添加要傳遞的資料,之後在SecondActivity中就可以得到這些值了,代碼如下:

getIntent().getStringExtra("string_data");

getIntent().getIntExtra("int_data",0);

但是putExtra()方法中所支援的資料類型是有限的,雖然常用的一些資料類型它都支援,但是當你想去傳遞一些自訂對象的時候不方便。

使用Intent傳遞對象通常有兩種實現方式,Serializable和Parcelable

Serializable是序列化的意思,表示將一個對象轉換成可儲存或可傳輸的狀態。序列化後的對象可以在網路上進行傳輸,也可以儲存到本地。序列化方法很簡單,只需讓一個類去實現Serializable這個介面就可以了。比如一個Person類,其中包含了name和age這兩個欄位,想要將其序列化就可以這樣寫。

public class Person implements Serializable

{

  private String name;

  private int age;

  setters getters;            //set和get方法

}

FirstActivity:

Person person=new Person();

person.setName("Tom");

person.setAge(20);

Intent intent=new Intent(FirstActivity.this,SecondActivity.class);

intent.putExtra("person_data",person);

startActivity(intent);

SecondActivity:

Person person=(Person)getIntent().getSerializableExtra("person_data"); 



Intent傳遞對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.