将包含其他自定义对象的对象列表从一个活动发送到另一个活动
Posted
技术标签:
【中文标题】将包含其他自定义对象的对象列表从一个活动发送到另一个活动【英文标题】:Send list of objects which contain other custom objects from one activity to another 【发布时间】:2014-12-05 08:15:37 【问题描述】:这是我的班级,我想将其列表发送到另一个活动。
public class PostComments
public User from;
public String message;
public String createdTime;
public String like_count;
public Boolean user_likes;
这是 User 类,其对象用于 PostComments 类。
public class User extends BaseEntity
public String photoUrl;
这是 BaseEntity 类
public class BaseEntity
public String Id;
public String Name;
如何将此对象从一个活动发送到另一个活动?
PostComments[] myData = ClickedPost.comments.data;
Intent PostCommentsActivity = new Intent(getActivity() , PostCommentsActivity.class);
getActivity().startActivity(PostCommentsActivity);
以上是打开 PostCommentsActivity 的代码,我想将 myData 对象发送到 PostCommentsActivity。
我已经对这个问题进行了很多搜索,但每个问题和教程都解释说,仅针对包含简单字符串、int 或布尔变量的类。
【问题讨论】:
为什么要发送这么多数据?为什么不直接发送一个对象的 ID,然后在目的地检索/构造该对象? 其他方法都失败了,您可以随时序列化对象并在目的地反序列化。 我只想以任何方式在第二个活动中显示我的这个 cmets 数组。你能提供一些我该怎么做的链接吗? 【参考方案1】:让我们试试吧:
ArrayList<PostComments> comments = new ArrayList<MainActivity.PostComments>();
comments.add(...) //Add your list data here
Intent intent = new Intent(getActivity() , PostCommentsActivity.class);
intent.putExtra("list_comments", comments);
getActivity().startActivity(intent);
并将您的 PostComments 类编辑为:
public class PostComments implements Serializable
public String message;
public String createdTime;
public String like_count;
public Boolean user_likes;
在 PostCommentsActivity 中,获取 bundle 以获取列表 cmets。
【讨论】:
PostComments[] myData = ClickedPost.cmets.data; 我没有arraylist,它是一个来自服务器的简单数组。如何将其更改为 ArrayList以上是关于将包含其他自定义对象的对象列表从一个活动发送到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章