Android 开发笔记——通过 Intent 传递类对象
Android中Intent傳遞類(lèi)對(duì)象提供了兩種方式一種是?通過(guò)實(shí)現(xiàn)Serializable接口傳遞對(duì)象,一種是通過(guò)實(shí)現(xiàn)Parcelable接口傳遞對(duì)象。
要求被傳遞的對(duì)象必須實(shí)現(xiàn)上述2種接口中的一種才能通過(guò)Intent直接傳遞。
Intent中傳遞這2種對(duì)象的方法:
Bundle.putSerializable(Key,Object); //實(shí)現(xiàn)Serializable接口的對(duì)象 Bundle.putParcelable(Key, Object); //實(shí)現(xiàn)Parcelable接口的對(duì)象以下以最常用的Serializable方式為例 :
假設(shè)由登錄界面(Login)跳轉(zhuǎn)到主界面(MainActivity)傳遞的對(duì)象為登錄的用戶信息 User類(lèi)
首先創(chuàng)建一個(gè)序列化類(lèi):User
import java.io.Serializable;
public class User implements Serializable {
? private int ID;
??? private String UserName;???
??? private String PWD;???
??? public final void setID(int value)
??? {
??????? ID = value;
??? }
??? public final int getID()
??? {
??????? return ID;
??? }???
??? public final void setUserName(String value)
??? {
??????? UserName = value;
??? }
??? public final String getUserName()
??? {
??????? return UserName;
??? }?
??? public final void setPWD(String value)
??? {
??????? PWD = value;
??? }
??? public final String getPWD()
??? {
??????? return PWD;
??? }???
???
}
?
登錄窗體登錄后傳遞內(nèi)容:
Intent intent = new Intent();
intent.setClass(Login.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("user", user);
intent.putExtras(bundle);
this.startActivity(intent);
接收端:
Intent intent = this.getIntent();
user=(User)intent.getSerializableExtra("user");
以上就可以實(shí)現(xiàn)對(duì)象的傳遞。
補(bǔ)充:
如果傳遞的是List<Object>,可以把list強(qiáng)轉(zhuǎn)成Serializable類(lèi)型,而且object類(lèi)型也必須實(shí)現(xiàn)了Serializable接口
Intent.putExtras(key, (Serializable)list)?
接收
(List<YourObject>)getIntent().getSerializable(key)
轉(zhuǎn)載于:https://www.cnblogs.com/Jingerxin/p/5101882.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的Android 开发笔记——通过 Intent 传递类对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2016年,新的一年,新的元素。
- 下一篇: Android对应用程序签名