将parcelable添加到自定义对象的接口类

Hit*_*ua1 6 android object parcelable android-intent android-activity

我有一个自定义对象类,但是通过接口实现,我如何在其中加入parceable.我跟踪并搜索了parceable,但它只适用于对象类.例如:如何使我的自定义对象Parcelable?

我想将我的对象列表传递给android中的另一个活动.

代码:

public interface Projection {

  interface Job {
        @XBRead("./task")
        List<Task> getTasks();

        @XBRead("./id")
        String getid();

        @XBRead("./job_title")
        String getjob_title();

        @XBRead("./job_description")
        String getjob_description();

        @XBRead("./job_room")
        String getjob_room();

        @XBRead("./status")
        String getstatus();
    }

    interface Task {

        @XBRead("./task_id")
        String gettask_id();

        @XBRead("./task_title")
        String gettask_title();

        @XBRead("./task_description")
        String gettask_description();

        @XBRead("./task_status")
        String gettask_status();


    }

    @XBRead("/root/job")
    List<Job> getJobs();
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ser 12

您的自定义界面需要extend Parcelable.

实现自定义接口的类也需要实现Parcelable接口,包括CREATOR.

然后,您可以添加实现自定义界面的对象,Intent如下所示:

intent.putExtra("thing", thing);
Run Code Online (Sandbox Code Playgroud)

或添加ArrayList包含这些对象,如下所示:

ArrayList<Thing> things;
intent.putParcelableArrayListExtra("things", things);
Run Code Online (Sandbox Code Playgroud)

在接收端,Activity可以从Intent这样提取对象:

Thing thing = intent.getParcelableExtra("thing");
Run Code Online (Sandbox Code Playgroud)

要么

ArrayList<Thing> things = intent.getParcelableArrayListExtra("things");
Run Code Online (Sandbox Code Playgroud)