android - 像 fragment 一样在 Activity 之间发送数据

标签 android android-fragments android-activity

我有一个自定义列表类型的数据(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 一起使用。为此,您需要执行以下操作。

  1. 从 Parcelable 实现您的数据类

    例如:MyListEntity 实现 Parcelable

  2. 在您的数据类 (MyListEntity) 中覆盖以下方法 writeToParcel()、readFromParcel()

3.在你的数据类(MyListEntity)中实现CREATOR类

Parcelable 示例的引用链接: passing object to activity

  1. 使用如下所述的 Intent 发送数据对象
Intent i = new Intent(this,Activity(Map2).class);

i.putExtra("mylistdata",finalHolder.data);

startActivity(i);
  1. 最后在您的 Activity(Map2) onCreate() 方法中获取相同的数据,如下所述
MyListEntity listEntry = getIntent().getParcelableExtra("mylistdata");

现在您的对象已在您的第二个 Activity 中准备就绪。 希望这对您有所帮助。

关于android - 像 fragment 一样在 Activity 之间发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352590/

相关文章:

android - 当我的 Android 手机连接 VPN 时,未收到 GCM 推送通知

android - 通过 Assets 字体更改 PreferenceFragment 字体

android - appcompat_v7 和 fragment_main.xml?

android - 无法更改 Facebook 登录按钮的高度 (Android)

java - 致命异常 : java. lang.IllegalStateException GoogleApiClient 尚未连接

android - 单个 XML 文件中可以嵌套的 LinearLayout 的最大数量?

android - Android中的状态栏覆盖操作栏

java - 获取用户Android版本

java - Mapview 顶部的另一个片段(SupportMapFragment)

Android - slider 设备导致 Activity 重置