我有一个自定义列表类型的数据(finalHolder.data)
早些时候我不得不将这些数据发送到一个 fragment 构造函数,它工作正常
Fragment fragment;
fragment = new RouteMap(finalHolder.data);
((Activity)getContext()).getFragmentManager().beginTransaction().replace(R.id.content_frame,fragment).commit();
fragment 构造函数代码
public RouteMap() {
// Required empty public constructor
}
public RouteMap(MyListEntity data) {
this.data = data;
}
Activity 构造函数:
public Map() {
}
public Map(MyListEntity data) {
this.data = data;
}
但现在我希望相同的数据到达 Activity (Map2)
我尝试了 putExtra 的 Intent 但 Intent 但它不起作用
简而言之,我希望在调用“finalHolder.data”时将其发送到 Activity 构造函数。
如果不可能,请提出解决方案 谢谢
最佳答案
不推荐使用Activity构造函数。要将数据对象发送到 Activity ,您可以将 Intent extras 与 Parcelable 一起使用。为此,您需要执行以下操作。
从 Parcelable 实现您的数据类
例如:MyListEntity 实现 Parcelable
- 在您的数据类 (MyListEntity) 中覆盖以下方法 writeToParcel()、readFromParcel()
3.在你的数据类(MyListEntity)中实现CREATOR类
Parcelable 示例的引用链接: passing object to activity
- 使用如下所述的 Intent 发送数据对象
Intent i = new Intent(this,Activity(Map2).class); i.putExtra("mylistdata",finalHolder.data); startActivity(i);
- 最后在您的 Activity(Map2) onCreate() 方法中获取相同的数据,如下所述
MyListEntity listEntry = getIntent().getParcelableExtra("mylistdata");
现在您的对象已在您的第二个 Activity 中准备就绪。 希望这对您有所帮助。
关于android - 像 fragment 一样在 Activity 之间发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352590/