2014-12-10 50 views
-1

我需要在SharedPreferences中存储Class对象,以便能够在另一个活动上检索它。将Class对象保存到SharedPreferences

下面是代码:

ForecastIO fio = new ForecastIO(apikey); 
fio.setUnits(ForecastIO.UNITS_SI); 
fio.setLang(ForecastIO.LANG_ENGLISH); 
fio.getForecast(""+latif+"",""+longit+""); 
FIOCurrently currently = new FIOCurrently(fio); 

我怎样才能 “现在” 存储在SharedPreferences?

+2

字段按字段... – Selvin 2014-12-10 23:43:54

+0

@Selvin你是什么意思字段按字段。请举例 – 2014-12-10 23:46:59

+0

这很具有讽刺意味,但是的确如此,因为您没有提供任何关于该对象的信息......无论如何,您可以将其序列化为字符串或将对象的每个原始字段放入对象中 – Selvin 2014-12-10 23:50:41

回答

1

不能在SharedPreferences中存储对象。像Selvin在评论中说。你应该逐场做。

例如:如果ForecastIO.UNITS_SI等于一个int,您可以轻松将其存储到SharedPreferencesSharedPreferences.Editor(看看文件:http://developer.android.com/reference/android/content/SharedPreferences.Editor.html),并与其他变量相同。

但是,如果您想将信息传递给其他活动,我建议您使用Intent。然后你甚至发送一个对象到另一个对象,但是这个对象必须是可访问的。看看这个stackoverflow问题:How to send an object from one Android Activity to another using Intents?

您的预期结果类似于他的正确答案和评论,为什么您不能将对象传递给另一个活动而不实施parceable。

0

@kevto说,这可能不是你应该做的,但如果由于某种原因,你发现你必须将对象的状态存储在SharedPreferences中,你可以使用GSon将它序列化为Json字符串,然后存储该字符串。

相关问题