2012-02-10 35 views
5

Android'de HashMap depolamaya çalışıyorum. Ben internal storage kullanmak daha iyi olduğunu düşünüyorum, ancak HashMapkaydetmek ve sonra daha sonra okuyun. Birisi bunu nasıl yapacağını açıklayabilir mi lütfen?Android'de HashMap nasıl depolanır?

Kendi adlarına ve değerlerine sahip sayaçlar vardır. Bazı etkinlikler başlatıldığında onları yüklemek istiyorum, onlarla çalışın (değiştirin, silin, yeni ekleyin) ve sonra bu verileri bir dahaki sefere kullanacak şekilde kaydedin. Şu anda HashMap kullanıyorum çünkü değerleri silmek/eklemek çok kolay.

HashMap<String, Integer> counters; 
+0

mı? veya Uygulama çalışana kadar. –

+0

lütfen tam depolama gereksinimini açıklayın. – Raj

+0

Daha fazla açıklama lütfen. –

cevap

12

SharedPreferences da HashMap olarak anahtar-değer çifti veri depolamak, neden HashMap gelen tüm anahtar değerlerini alamadım ve gibi haritada içine saklamak : kullanabileceğiniz

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)); 
    } 

değerlerini getirmek için :

public abstract Map<String, ?> getAll() 

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

kullanım:

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 
    } 

Kod derlenmemiştir, bu nedenle bazı küçük hatalar olabilir, ancak çalışmalıdır.

+0

dizgisi olarak sharedpref dosyasına kaydedebilirsiniz. Bu yöntemi kullanarak getirme değerlerinin bir örneğini gösterir misiniz, lütfen? – Roman

+0

size bekliyoruz. – jeet

+1

+1, henüz denememiş olsa da bir haritayı depolamanın iyi bir yolu gibi görünüyor. :) –

4

bu

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); 

deneyin ve size bir başka sebat gibi bazı dosyada saklamak istediğiniz HERE

İlgili konular