我没有可序列化的数据,我必须发送到其他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。这可能并不总是奏效。
在此创建的应用程序类创建ParseUser对象的实例。
使用单身。
1可能比较棘手,2和3比较容易。
我使用了2,因为解析SDK是不可能的。 3与2相同。 – Val 2013-04-27 11:14:05
您可以通过两种方式
1.方式做到这一点,你正在做它通过意向
传递数据要使用的数据通过此方法使用getIntent()方法来发送你的第二个活动中,其你想传递的数据,这给你的意图对象,并从thatvyou可以reteive数据传递你的密钥
您可以使用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到另一个活动是个好主意。 ParseUser可能因为不好的库设计而无法序列化,或者因为它不应该以这种方式使用。由于我不使用这个特定的库,我无法为你回答这个问题。
如果你不能序列化或使对象Parcelable,路由它通过应用程序对象或静态变量看起来像选项。
你也可以看看这个库(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher)我写的使这个过程更容易发送数据到其他活动。它不要求对象被序列化或实现Parcelable。
'user'究竟是什么?一个自定义的'User'类? – 2013-04-26 13:48:16
什么是“用户”的类型? – SKK 2013-04-26 13:48:18
你能详细说明一下什么样的数据? – 2013-04-26 13:48:26