2014-12-10 79 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字符串,然後存儲該字符串。

相關問題