2012-02-10 14 views
5

तो, मैं एंड्रॉइड पर HashMap स्टोर करने की कोशिश कर रहा हूं। मुझे लगता है कि internal storage का उपयोग करना बेहतर है, लेकिन मुझे HashMap को में सहेजने के लिए और फिर इसे बाद में पढ़ने के लिए समझ में नहीं आता है। क्या कोई बता सकता है कि इसे ठीक से कैसे करें, कृपया?एंड्रॉइड पर हैश मैप कैसे स्टोर करें?

काउंटर अपने नाम और मूल्यों के साथ हैं। मैं उन्हें लोड करना चाहता हूं जब कुछ गतिविधि शुरू हुई थी, उनके साथ काम करें (बदलें, हटाएं, नया जोड़ें), और उसके बाद उस डेटा को अगली बार उपयोग करने के लिए सहेजें। अभी मैं हैश मैप का उपयोग करता हूं क्योंकि मूल्यों को हटाना/जोड़ना आसान है।

HashMap<String, Integer> counters; 
+0

जहां दृढ़ता के रूप में कुछ फ़ाइल में संग्रहीत करना चाहते हैं है? या जब तक आपका एप्लिकेशन चल रहा है। –

+0

कृपया भंडारण के लिए अपनी सटीक आवश्यकता की व्याख्या करें। – Raj

+0

अधिक जानकारी कृपया। –

उत्तर

12

SharedPreferences भी कुंजी-मान पेयर में डेटा hashmap के रूप में संग्रहीत, तो क्यों hashmap से सभी मुख्य मान नहीं मिलता है और नक्शे में संग्रहीत करते हैं, के रूप में यह:

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

मूल्यों लाने के लिए आप उपयोग कर सकते हैं :

public abstract Map<String, ?> getAll() 

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

उपयोग:

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 
    } 

कोड संकलित नहीं है, इसलिए इसमें कुछ मामूली त्रुटियां हो सकती हैं, लेकिन काम करना चाहिए।

+0

के रूप में sharedpref में सहेज सकते हैं क्या आप उस विधि का उपयोग करके मूल्य लाने के उदाहरण दिखा सकते हैं? – Roman

+0

आपका स्वागत है। – jeet

+1

+1 मानचित्र को स्टोर करने का एक अच्छा तरीका प्रतीत होता है, हालांकि अभी तक प्रयास नहीं किया गया है। :) –

4

इस

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

की कोशिश करो और एक और तरीका है HERE