W mojej aplikacji dla systemu Android próbuję zapisać strukturę mapy, taką jak: Map<String, Map<String, String>>
przy użyciu pamięci wewnętrznej. Przyjrzałem się przy użyciu SharedPreferences
, ale jak wiadomo, działa to tylko podczas przechowywania podstawowych typów danych. Próbowałem użyć FileOutputStream
, ale pozwala mi to tylko pisać w bajtach ... Czy muszę jakoś serializować Hashmap, a następnie pisać do pliku?Jak mogę przechowywać strukturę danych, taką jak HashMap wewnętrznie w systemie Android?
Próbowałem czytać przez http://developer.android.com/guide/topics/data/data-storage.html#filesInternal, ale nie mogę znaleźć mojego rozwiązania.
Oto przykład tego, co próbuję zrobić:
private void storeEventParametersInternal(Context context, String eventId, Map<String, String> eventDetails){
Map<String,Map<String,String>> eventStorage = new HashMap<String,Map<String,String>>();
Map<String, String> eventData = new HashMap<String, String>();
String REQUEST_ID_KEY = randomString(16);
. //eventData.put...
. //eventData.put...
eventStorage.put(REQUEST_ID_KEY, eventData);
FileOutputStream fos = context.openFileOutput(EVENT_FILENAME, Context.MODE_PRIVATE);
fos.write(eventStorage) //This is wrong but I need to write to file for later access..
}
Co jest najlepszym rozwiązaniem do przechowywania tego typu struktury danych wewnętrznie w aplikacji na Androida? Przepraszam, jeśli wydaje się to głupie pytanie, jestem bardzo nowy na Androida. Z góry dziękuję.