我没有可序列化的数据,我必须将其发送给其他Activity
。
我尝试使用Intent
,但这是不可能的。
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何将之前Activity
的数据发送到新Activity
?
答案 0 :(得分:1)
我认为你不能这样做,因为ParseUser需要实现Parcelable或Serializable。您可能无法修改类,因此您可以这样做:
创建一个包装类并重新构建ParseUser对象。这个包装器需要实现Parcelable或Serializable。这可能并不总是有效。
在此处扩展Application类,您可以创建一个ParseUser对象的实例。
使用单身人士。
1可能很棘手,2和3更容易。
答案 1 :(得分:0)
你可以用两种方式做到这一点
1.你这样做的方式是通过意图传递数据
要使用通过此方法发送的数据,请在您要向其传递数据的第二个活动中使用getIntent()方法,这将为您提供意图对象,并且从该方法可以重新传递传递密钥的数据
答案 2 :(得分:0)
您可以使用Google Gson lib将对象转换和解析为JSON格式的字符串,并将它们作为普通的Java字符串传递。
将对象转换为JSON字符串:
ParseUser user=new ParseUser();
Gson gson = new Gson();
String json = gson.toJson(user);
将其从JSON String解析回object:
ParseUser user = gson.fromJson(json, ParseUser.class);
然而,一个不相关的考虑因素是将ParseUser传递给另一个Activity是一个好主意。由于库设计不好,ParseUser可能无法序列化,或者因为它不应该以这种方式使用。由于我不使用这个特定的库,我无法为你回答这个问题。
答案 3 :(得分:0)
如果你不能序列化或使对象Parcelable,通过Application对象或静态变量路由它似乎是选项。
您还可以查看我写的这个库(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher),以便更轻松地将数据发送到其他活动。它不需要对象进行序列化或实现Parcelable。