2011-08-24 5 views
6
URI imageUri = null; 

//Setting the Uri of aURL to imageUri. 
try { 
    imageUri = aURL.toURI(); 
} catch (URISyntaxException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

मैं इस यूआरएल को यूआरआई में यूआरएल का अनुवाद करने के लिए उपयोग कर रहा हूं। मैं imageUri को SharePreferences में कैसे सहेज सकता हूं, या एक स्मृति जहां इसे Destroy() पर हटाया नहीं जाएगा?यूआरआई, या किसी भी संग्रहण को बचाने के लिए साझा किए गए संदर्भों का उपयोग कैसे करें?

मैं न SQLite डेटाबेस है क्योंकि यूआरआई जब यूआरएल बदल न अप्रयुक्त यूआरआई के

उत्तर

9

भंडारण के लिए SharedPreferences का उपयोग कर आप अपने OnCreate() में कुछ इस तरह की आवश्यकता होगी आरंभ करने के लिए:

SharedPreferences myPrefs = getSharedPreferences(myTag, 0); 
SharedPreferences.Editor myPrefsEdit = myPrefs.edit(); 

मुझे लगता है कि इस तरह यह स्टोर करने के लिए आप कुछ कर सकते हैं:

पुनः प्राप्त करने के
myPrefsEdit.putString("url", imageUri.toString()); 
myPrefsEdit.commit(); 

और फिर कुछ इस तरह:

try { 
    imageUri = URI.create(myPrefs.getString("url", "defaultString")); 
} catch (IllegalArgumentException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
0

के लिए स्मृति को उपयोग करने के लिए एक प्राथमिकता के रूप में uri बचाने के लिए आप पहले एक करने के लिए यह अनुवाद करने की आवश्यकता चाहते हैं बदल जाएगा चाहते हैं getPath() विधि का उपयोग कर स्ट्रिंग। फिर आप इसे इस तरह स्टोर कर सकते हैं।

SharedPreferences pref = getSharedPreferences("whateveryouwant", MODE_PRIVATE); 
SharedPreferences.Editor prefEditor = userSettings.edit(); 
prefEditor.putString("key", uriString); 
prefEditor.commit(); 
5

आप बस अपने यूआरआई की एक स्ट्रिंग प्रस्तुति बचा सकते हैं।

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putString("imageURI", imageUri.toString()); <-- toString() 

तो इसे पुनः प्राप्त करने Uri parse विधि का उपयोग करें।

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
String imageUriString = settings.getString("imageURI", null); 
Uri imageUri = Uri.parse(imageUriString); <-- parse 
+0

अपने उदाहरण कोड में उन्होंने java.net.URI ऑब्जेक्ट का उपयोग किया जिसमें .parse (स्ट्रिंग) की बजाय .create (स्ट्रिंग) है। Android। क्या इनमें से किसी एक का उपयोग करने के लिए कोई उलझन है? – FoamyGuy

+0

मैंने वास्तव में android.net.Uri को संभाला था ओपी साझा प्राथमिकताओं में सहेजने की कोशिश कर रहा था। यदि नहीं, तो आपका जवाब निश्चित रूप से सही है। – Kal

+0

मुझे लगता है कि वे दोनों काम करेंगे, और मैं कभी एक दूसरे के लिए किसी भी कारण से नहीं आया – FoamyGuy

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