Java 向新活动发送不可序列化的数据
我没有必须发送到其他Java 向新活动发送不可序列化的数据,java,android,android-intent,android-activity,serialization,Java,Android,Android Intent,Android Activity,Serialization,我没有必须发送到其他活动的可序列化数据。 我试图使用意图,但这是不可能的 Intent intent = new Intent(v.getContext(), UserDetailActivity.class); intent.putExtra("class", user); v.getContext().startActivity(intent); 如何将以前的活动中的数据发送到新的活动 您可以通过两种方式来实现这一点 1.您的操作方式通过intent传递数据 要使用通过此方法发送的数据,请
活动
的可序列化数据。
我试图使用意图
,但这是不可能的
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何将以前的
活动
中的数据发送到新的活动
您可以通过两种方式来实现这一点
1.您的操作方式通过intent传递数据
要使用通过此方法发送的数据,请在要向其传递数据的第二个活动中使用getIntent()方法。这将为您提供intent对象,并且您可以从中接收传递密钥的数据。我不认为您可以这样做,因为ParseUser需要实现可打包或可序列化。您可能无法修改该类,因此可以执行以下操作:
ParseUser user=new ParseUser();
Gson gson = new Gson();
String json = gson.toJson(user);
要将其从JSON字符串解析回对象,请执行以下操作:
ParseUser user = gson.fromJson(json, ParseUser.class);
然而,一个不相关的考虑是,将用户传递给另一个活动是否是一个好主意。ParseUser可能无法序列化,因为库设计不好,或者不应该以这种方式使用。由于我不使用这个特定的库,我无法为您回答这个问题。如果您无法序列化或使对象可打包,则通过应用程序对象或静态变量将其路由似乎是选项
您还可以查看我编写的这个库(),以简化向其他活动发送数据的过程。它不需要序列化对象或实现Parcelable
user
到底是什么?自定义User
类?什么是“User”的类型?您能详细说明什么类型的数据吗?User它是ParseUser。使用您的解决方案,您可以只传递字符串。因此,对于要传递的所有子参数,都需要类似intent.putExtra(“username”,user.getName())的内容。但这是一项艰巨的工作,所以不妨尝试一下@cafebabe1991解决方案!我使用了2,因为1对于Parse SDK是不可能的。3和2是一样的。