2013-04-26 33 views
0

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

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

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

+0

'user'究竟是什么?一个自定义的'User'类? – 2013-04-26 13:48:16

+0

什么是“用户”的类型? – SKK 2013-04-26 13:48:18

+0

你能详细说明一下什么样的数据? – 2013-04-26 13:48:26

回答

1

我不认为你可以这样做,因为ParseUser需要实现可Parcelable或Serializable。您可能无法修改该课程,因此您可以这样做:

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

  2. 在此创建的应用程序类创建ParseUser对象的实例。

  3. 使用单身。

1可能比较棘手,2和3比较容易。

+0

我使用了2,因为解析SDK是不可能的。 3与2相同。 – Val 2013-04-27 11:14:05

0

您可以通过两种方式

1.方式做到这一点,你正在做它通过意向

传递数据

要使用的数据通过此方法使用getIntent()方法来发送你的第二个活动中,其你想传递的数据,这给你的意图对象,并从thatvyou可以reteive数据传递你的密钥

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到另一个活动是个好主意。 ParseUser可能因为不好的库设计而无法序列化,或者因为它不应该以这种方式使用。由于我不使用这个特定的库,我无法为你回答这个问题。