Android Intent 传递实体类到下一个 Activity

要在 Android 中通过 Intent 传递实体类对象,首先需要确保实体类对象实现了 Serializable 或 Parcelable 接口。

一、实现 Serializable 接口:

public class MyObject implements Serializable {
    private String name;
    private int age;

    // 构造方法和其他方法
}
 

然后,在发送方的代码中,创建一个 Intent 对象并调用 putExtra() 方法来传递实体类对象:

Intent intent = new Intent(this, ReceiveActivity.class);
intent.putExtra("my_object", myObject);
startActivity(intent);
 

最后,在接收方的代码中,使用 getSerializableExtra() 方法来获取实体类对象:

MyObject myObject = (MyObject) getIntent().getSerializableExtra("my_object");
 

二、实现 Parcelable 接口:

public class MyObject implements Parcelable {
    private String name;
    private int age;

    // 构造方法和其他方法

    protected MyObject(Parcel in) {
        name = in.readString();
        age = in.readInt();
    }

    public static final Creator<MyObject> CREATOR = new Creator<MyObject>() {
        @Override
        public MyObject createFromParcel(Parcel in) {
            return new MyObject(in);
        }

        @Override
        public MyObject[] newArray(int size) {
            return new MyObject[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }
}
 

然后,在发送方的代码中,创建一个 Intent 对象并调用 putExtra() 方法来传递实体类对象:

Intent intent = new Intent(this, ReceiveActivity.class);
intent.putExtra("my_object", myObject);
startActivity(intent);
 

最后,在接收方的代码中,使用 getParcelableExtra() 方法来获取实体类对象:

MyObject myObject = getIntent().getParcelableExtra("my_object");
 

 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 06:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 06:20:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 06:20:03       82 阅读
  4. Python语言-面向对象

    2023-12-26 06:20:03       91 阅读

热门阅读

  1. 装饰器模式和责任链模式区别

    2023-12-26 06:20:03       65 阅读
  2. Electron窗口绑定父窗口后center()不生效的解决方案

    2023-12-26 06:20:03       56 阅读
  3. 探索 Vue3 (五) 骨架屏

    2023-12-26 06:20:03       68 阅读
  4. iOS使用CXCallObserver监听电话接听与拨打

    2023-12-26 06:20:03       61 阅读
  5. 如何在Go中使用泛型

    2023-12-26 06:20:03       62 阅读
  6. K8S理论

    K8S理论

    2023-12-26 06:20:03      57 阅读
  7. 使用OpenSSL生成自签名SSL/TLS证书和私钥

    2023-12-26 06:20:03       68 阅读
  8. MATLAB入门

    2023-12-26 06:20:03       57 阅读