2012-02-10 5 views
5

Quindi, sto cercando di memorizzare HashMap su Android. Penso che sia meglio usare internal storage, ma non capisco come salvareHashMap in esso e poi leggerlo dopo. Qualcuno può spiegare come farlo correttamente, per favore?Come memorizzare HashMap su Android?

Ci sono contatori con i loro nomi e valori. Voglio caricarli quando si è avviata un'attività, lavorare con loro (modificare, eliminare, aggiungere nuovi), quindi salvare i dati per utilizzarli la volta successiva. In questo momento utilizzo HashMap perché è facile eliminare/aggiungere valori.

HashMap<String, Integer> counters; 
+0

in cui si desidera archiviare in qualche file come persistenza? o fino a quando l'applicazione è in esecuzione. –

+0

si prega di spiegare il vostro esatto requisito per la conservazione. – Raj

+0

altra descrizione per favore. –

risposta

12

SharedPreferences memorizzare anche dati in coppia chiave-valore come HashMap, quindi perché non avere tutti i valori-chiave da hashmap e memorizzare in carta, in quanto:

SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                  Context.MODE_PRIVATE); 
SharedPreferences.Editor editor= pref.edit(); 

    for (String s : map.keySet()) { 
     editor.putString(s, map.get(s)); 
    } 

per andare a prendere i valori è possibile utilizzare :

public abstract Map<String, ?> getAll() 

http://developer.android.com/reference/android/content/SharedPreferences.html#getAll%28%29

uso:

0.123.
SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                  Context.MODE_PRIVATE); 
HashMap<String, String> map= HashMap<String, String> pref.getAll(); 
for (String s : map.keySet()) { 
     String value=map.get(s); 
     //Use Value 
    } 

Il codice non è compilato, quindi potrebbe avere alcuni errori minori, ma dovrebbe funzionare.

+0

Puoi mostrare un esempio di recupero dei valori usando quel metodo, per favore? – Roman

+0

siete i benvenuti. – jeet

+1

+1 sembra un buon modo per memorizzare una mappa, anche se non ancora provato. :) –

4

Prova questa

HashMap<String, String> hashMap = new HashMap<String, String>(); 
hashMap.put("key", "value"); 
Intent intent = new Intent(this, MyOtherActivity.class); 
intent.putExtra("map", hashMap); 
startActivity(intent); 

e un altro modo è HERE