2012-11-29 22 views
7

क्या मैं एंड्रॉइड में साझा किए गए संदर्भों का उपयोग करके एक ही कुंजी के साथ दो या दो से अधिक मूल्यों को स्टोर कर सकता हूं? यदि नहीं, तो कृपया मुझे बताएं कि पंजीकरण उपयोगकर्ता में पंजीकरण करने वाले कई उपयोगकर्ता नाम, उपयोगकर्ता नाम, पासवर्ड आदि के मूल्यों को कैसे स्टोर करते हैं?क्या मैं एंड्रॉइड में साझा किए गए संदर्भों का उपयोग करके एक ही कुंजी के साथ दो या दो से अधिक मान संग्रहीत कर सकता हूं?

पूर्व:

person A registered with username="john12", first name="john" and DOB="06/06/2000". 
person B registered with username="arun89", first name="arun" and DOB="08/11/1989". 

अब, मैं SharedPreferences में इन मूल्यों की दुकान और उन्हें बाद में प्राप्त करना चाहते हैं। क्या साझा किए गए संदर्भों का उपयोग करना संभव है? यदि नहीं, तो कृपया मुझे बताएं कि दूसरे तरीके से कैसे करें।

अग्रिम धन्यवाद।

+0

साझा प्राथमिकताओं में एक हैश मानचित्र सहेजना http://stackoverflow.com/a/7944653/1012284 –

उत्तर

1

मुझे नहीं लगता कि यह संभव है, क्योंकि आप उपयोगकर्ताओं की संख्या नहीं जानते हैं। आप उपयोगकर्ताओं को अल्पविराम से अलग करने का प्रयास कर सकते हैं, लेकिन यह लंगड़ा है।

आपको SQLite डेटाबेस का उपयोग करने पर विचार करना चाहिए। http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

0

तो फिर तुम पहले एक वर्ग userInfo तो userInfo की एक सरणी सूची प्रकार बनाने के तो इस सूची में डाटा स्टोर बनाने के उपयोगकर्ता वस्तुओं की एक सरणी सूची की दुकान और SharedPreferences में एक serialize करने योग्य वस्तु डाल करने के लिए की है।

2

अपने मामले के लिए यह बेहतर इस्तेमाल SQLite database.But है आप साझा वरीयता उपयोग करने के लिए यह अभी भी possible.You है है

USERNAME1 की तरह अलग अलग उपयोगकर्ता याद करने के लिए अतिरिक्त सूचकांक के साथ एक प्रमुख उपयोग करना चाहते हैं: अरुण

उपयोगकर्ता नाम 2: जॉन

आपको उपयोगकर्ता की कुल संख्या याद रखना होगा। फिर उन सभी को बनाए रख सकते हैं। आप साझा प्राथमिकता के लिए डेटा को बनाए रखने के लिए हैशैप जैसी अन्य डेटा संरचना का भी उपयोग कर सकते हैं।

0

आप उन्हें "रजिस्टर्स" नामक एक कुंजी पर भी स्ट्रिंग के रूप में स्टोर कर सकते हैं। प्रत्येक रजिस्टर को वरीयता के साथ जोड़ें। डाल ";" (या आप चाहते हैं कि कोई अन्य गुणक) प्रत्येक रजिस्टर के बीच। फिर स्ट्रिंग को पार्स करें और मानों का उपयोग करें।

कुंजी: पंजीकृत करता

मूल्य: "उपयोगकर्ता नाम = john12, प्रथम नाम = जॉन, जन्म तिथि = 06/06/2000; उपयोगकर्ता नाम = mike12, प्रथम नाम = माइक, जन्म तिथि = 06/07/2012"

स्ट्रिंग के विभाजन विधि का उपयोग करके आपको रजिस्ट्रारों की सूची स्ट्रिंग के रूप में दी जाएगी।

registers.split(";"); 

"," के साथ फिर से विभाजित करने से आप प्रत्येक रजिस्टर के गुण देंगे।

1

आप इन मूल्यों को सीधे स्टोर कर सकते हैं नहीं है (जैसा कि बाद के पहले जोड़े के ऊपर लिख देगा) लेकिन आप हमेशा Parcelable स्टोर और में अपने डेटा डाल सकते हैं यह

2

मैं एक JSONObject बनाने पर विचार करें और खेतों आप एक के रूप में संग्रहीत करना चाहते हैं जोड़ने woud कुंजी: मूल्य जोड़ी।

json.putString(key, value); 

फिर आप json.toString() के साथ की स्ट्रिंग प्रतिनिधित्व में json वस्तु की दुकान और

JSONObject jo = new JSONObject(jsonString); 
String value = jo.getString(key); 

JSONObject भी तार के बगल में विभिन्न डेटा प्रकार offeres साथ बाद में इसे बहाल कर सकते हैं।

यह वास्तव में इस बात पर निर्भर करता है कि आप कितना डेटा स्टोर करना चाहते हैं। उस पर निर्भर करता हूं कि मैं साझा किए गए संदर्भ या SQLite कार्यान्वयन का चयन करूंगा।