0

我没有必须发送给其他的可序列化数据Activity。我尝试使用Intent,但这是不可能的。

Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);

如何将数据从以前的发送Activity到新的Activity

4

4 回答 4

1

我认为您不能这样做,因为 ParseUser 需要实现 Parcelable 或 Serializable。您可能无法修改该类,因此您可以执行以下操作:

  1. 创建一个包装类并重建 ParseUser 对象。这个包装器需要实现 Parcelable 或 Serializable。这可能并不总是有效。

  2. 在此处扩展您创建的 Application 类,创建 ParseUser 对象的实例。

  3. 使用单例。

1 可能很棘手,2 和 3 更容易。

于 2013-04-26T14:11:34.620 回答
0

你可以通过两种方式做到这一点

1.通过意图传递数据的方式

要使用通过此方法发送的数据,请在您要将数据传递到的第二个活动中使用 getIntent() 方法,这将为您提供意图对象,并且您可以从中获取传递密钥的数据

于 2013-04-26T13:52:30.050 回答
0

您可以使用Google Gson lib将对象转换和解析为 JSON 格式的字符串,并将它们作为普通的 Java 字符串传递。

要将对象转换为 JSON 字符串:

ParseUser user=new ParseUser();
Gson gson = new Gson();
String json = gson.toJson(user); 

要将其从 JSON 字符串解析回对象:

ParseUser user = gson.fromJson(json, ParseUser.class); 

然而,一个不相关的考虑是将 ParseUser 传递给另一个 Activity 是否是一个好主意。ParseUser 可能因为糟糕的库设计而无法序列化,或者因为它不应该以这种方式使用。由于我不使用这个特定的库,我无法为您回答这个问题。

于 2013-04-26T14:22:15.583 回答
0

如果您不能序列化或使对象 Parcelable,通过 Application 对象或静态变量路由它似乎是选项。

您还可以查看我编写的这个库(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher),以简化将数据发送到其他活动的过程。它不需要对象被序列化或实现 Parcelable。

于 2014-11-02T16:41:23.613 回答