我没有必须发送给其他的可序列化数据Activity
。我尝试使用Intent
,但这是不可能的。
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何将数据从以前的发送Activity
到新的Activity
?
我没有必须发送给其他的可序列化数据Activity
。我尝试使用Intent
,但这是不可能的。
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何将数据从以前的发送Activity
到新的Activity
?
我认为您不能这样做,因为 ParseUser 需要实现 Parcelable 或 Serializable。您可能无法修改该类,因此您可以执行以下操作:
创建一个包装类并重建 ParseUser 对象。这个包装器需要实现 Parcelable 或 Serializable。这可能并不总是有效。
在此处扩展您创建的 Application 类,创建 ParseUser 对象的实例。
使用单例。
1 可能很棘手,2 和 3 更容易。
你可以通过两种方式做到这一点
1.通过意图传递数据的方式
要使用通过此方法发送的数据,请在您要将数据传递到的第二个活动中使用 getIntent() 方法,这将为您提供意图对象,并且您可以从中获取传递密钥的数据
您可以使用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 可能因为糟糕的库设计而无法序列化,或者因为它不应该以这种方式使用。由于我不使用这个特定的库,我无法为您回答这个问题。
如果您不能序列化或使对象 Parcelable,通过 Application 对象或静态变量路由它似乎是选项。
您还可以查看我编写的这个库(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher),以简化将数据发送到其他活动的过程。它不需要对象被序列化或实现 Parcelable。