Android,如何将 ArrayList放入在意图中?

发布于 2024-11-25 09:41:26 字数 128 浏览 1 评论 0原文

我有两个活动,在第一个活动中,我实例化了对象 myObject 的 ArrayList。在第二个活动中,我需要获取这个Arraylist。我不知道如何有目的地做到这一点?

(对象是我创建的一个类)

提前致谢。

I have two Activities, in the first one, I instanciate an ArrayList of Object myObject. In the second activity, i need to get this Arraylist. I don't know how to do that with an intent ?

(Object is a class I have created)

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鸠魁 2024-12-02 09:41:26

如果你让你的 Object 类实现 Parcelabel 你可以将你的数组列表打包到您发送的捆绑包的意图

请参阅此链接了解例子

If you make your Object class implement Parcelabel you can pack your arraylist into the bundle you send with the intent

see this link for an example

岁月无声 2024-12-02 09:41:26

通常你使用 Bundle 对象来传递信息活动之间,但这些仅允许简单类型对象。通常,为了传递更复杂的对象类型,您通常必须构造某种静态上下文并在其上设置值,然后该值可供第二个活动使用。这感觉很脏,但我现在已经在我的应用程序中克服了它。

Usually you use Bundle objects to pass information between Activities, but these only allow for simple type objects. Typically, for passing more complex object types you generally have to construct a static context of some kind and set your values on that, which is then available to the second activity. It feels dirty, but I've got over it in my apps now.

风吹雨成花 2024-12-02 09:41:26

您的类 myObject 必须实现 Parcelable 。然后,您可以使用 putParcelableArrayListExtra 从您的意图将其传递到下一个活动并检索列表getParcelableArrayListExtra

Your class myObject will have to implement Parcelable. Then, you can use putParcelableArrayListExtra from your intent to pass it to the next activity and retrieve the list with getParcelableArrayListExtra

︶ ̄淡然 2024-12-02 09:41:26

我是这样用的。

put:

intent.putExtra("data", new DataWrapper(selectedTasks));
startActivity(intent);

get:

DataWrapper dw = (DataWrapper) getIntent().getSerializableExtra("data");
ArrayList<SelectedTask> taskList = dw.getList();

Arraylist 对象应该是可序列化的

public class SelectedTask implements Serializable{

}

public class DataWrapper implements Serializable{
    private ArrayList<SelectedTask> slist;

       public DataWrapper(ArrayList<SelectedTask> data) {
          this.slist = data;
       }

       public ArrayList<SelectedTask> getList() {
          return this.slist;
       }
}

I used like this.

put:

intent.putExtra("data", new DataWrapper(selectedTasks));
startActivity(intent);

get:

DataWrapper dw = (DataWrapper) getIntent().getSerializableExtra("data");
ArrayList<SelectedTask> taskList = dw.getList();

Arraylist object should be Serializable

public class SelectedTask implements Serializable{

}

public class DataWrapper implements Serializable{
    private ArrayList<SelectedTask> slist;

       public DataWrapper(ArrayList<SelectedTask> data) {
          this.slist = data;
       }

       public ArrayList<SelectedTask> getList() {
          return this.slist;
       }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文