android - मैं SharePreferences में एक ArrayList<HashMap<String, String>> को कैसे स्टोर कर सकता हूं?



object sharedpreferences (1)

मैं एक ArrayList को स्टोर करना चाहता हूं जिसमें हस्मैप को साझा किए गए पन्नों के अंदर होता है मैं यह कैसे कर सकता हूँ?

https://code.i-harness.com


आप अपने संग्रह को एक जेसन में परिवर्तित कर सकते हैं और उसे साझा प्राथमिकता में संग्रहीत कर सकते हैं। जब भी आपको डेटा प्राप्त करने की आवश्यकता होती है, बस स्ट्रिंग प्राप्त करें और JSON को अपने संग्रह में वापस कनवर्ट करें।

//converting the collection into a JSON
JSONArray result= new JSONArray(collection);
SharedPreferences pref = getApplicationContext().getSharedPreferences(PREF_NAME, 0);

//Storing the string in pref file
SharedPreferences.Editor prefEditor = pref.edit();
prefEditor.putString(KEY, result.toString());
prefEditor.commit();

//Getting the JSON from pref
String storedCollection = pref.getString(KEY, null);
//Parse the string to populate your collection.
ArrayList<HashMap<String, String>> collection = new ArrayList<HashMap<String, String>>();
try {
    JSONArray array = new JSONArray(storedCollection);
    HashMap<String, String> item = null;
    for(int i =0; i<array.length(); i++){
        String obj = (String) array.get(i);
        JSONObject ary = new JSONObject(obj);
        Iterator<String> it = ary.keys();
        item = new HashMap<String, String>();
        while(it.hasNext()){
            String key = it.next();
            item.put(key, (String)ary.get(key));
        }
        collection.add(item);
    }
} catch (JSONException e) {
    Log.e(TAG, "while parsing", e);
}

JSON कुछ इस तरह दिखना चाहिए:

[
  "{test13=yeah3, test12=yeah2, test11=yeah1}",
  "{test23=yeah3, test22=yeah2, test21=yeah1}",
  "{test32=yeah2, test31=yeah1, test33=yeah3}"
]




persistent-storage