2012-05-30 23 views
9

मैं सोच रहा था कि साझा प्राथमिकताओं में स्ट्रिंग्स की एक सरणी को सहेजना संभव हो सकता है, इस तरह, हर बार जब हम एक निश्चित स्ट्रिंग को सहेजते हैं, तो हम इसे उस सरणी में संग्रहीत करते हैं।साझा किए गए संदर्भों में एक स्ट्रिंग सरणी संग्रहीत करना

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

एंड्रॉइड में आदिम वस्तुओं को स्टोर करने के तरीके हैं, लेकिन सरणी के लिए नहीं। ऐसा करने के लिए कोई विचार, कृपया?

+0

AFAIK ने प्राइमेटिव डेटा प्रकार –

+0

http://stackoverflow.com/questions/7873682/is-it-possible-to-stored-classs-static-object-in-shared-preferenc के लिए साझा prefrences का उपयोग साझा किया ई/7873759 # 7873759 –

उत्तर

1

एक धारावाहिक सरणी पढ़ने और लिखने के तरीके लिखें। यह बहुत मुश्किल नहीं होना चाहिए। स्ट्रिंग्स की सरणी को केवल एक स्ट्रिंग में फ़्लैट करें जिसे आप वरीयताओं में संग्रहीत करते हैं। एक और विकल्प सरणी को एक XML संरचना में परिवर्तित करना होगा जिसे आप प्राथमिकताओं में संग्रहीत करते हैं, लेकिन शायद यह अधिक है।

23

यह संभव है: I was just blogging about it:

अपने ARRAY बचाओ

//String array[] 
//SharedPreferences prefs 
Editor edit = prefs.edit(); 
edit.putInt("array_size", array.length); 
for(int i=0;i<array.length; i++) 
    edit.putString("array_" + i, array[i]); 
edit.commit(); 

पुनर्प्राप्त करें अपनी ARRAY

int size = prefs.getInt("array_size", 0); 
array = new String[size]; 
for(int i=0; i<size; i++) 
    prefs.getString("array_" + i, null); 

बस लिखा है कि टाइपो हो सकता है।

+3

इस पोस्ट के उत्तरों की जांच करें। http://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferences – AndroidLearner

+0

@ शेरिफ elKhatib यह एक आकर्षण की तरह काम करता है! बहुत बहुत धन्यवाद – noloman

+0

@noloman आपका स्वागत है ब्लॉग के कार्यों की जांच करें .. अधिक सामान्य –

15

आप सरणी एक JSON सारणी बनाने और उसके बाद इस तरह यह संग्रहीत कर सकती है: बस एक वैकल्पिक समाधान

SharedPreferences settings = getSharedPreferences("SETTINGS KEY", 0); 
try { 
    JSONArray jArray = new JSONArray(settings.getString("jArray", "")); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

है कि मैं का इस्तेमाल किया है:

SharedPreferences settings = getSharedPreferences("SETTINGS KEY", 0); 
SharedPreferences.Editor editor = settings.edit(); 

JSONArray jArray = new JSONArray(); 
try { 
    jArray.put(id); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

editor.putString("jArray", jArray.toString()); 
editor.commit(); 

फिर आप इस तरह सरणी प्राप्त कर सकते हैं पिछले

संबंधित मुद्दे