2010-11-28 17 views
7

मैं अपेक्षाकृत नया प्रोग्रामर हूं, और मैंने वास्तव में एंड्रॉइड अनुप्रयोगों के लिए लेआउट लिखने के अलावा एक्सएमएल के साथ काम नहीं किया है।एंड्रॉइड ऐप पर 2 तारों को कैसे सहेजना है?

मैं उपयोगकर्ता को एक int मान सहेजने में सक्षम होना चाहता हूं (माना जाता है कि int को स्ट्रिंग के रूप में int को सहेजना आसान होगा), इसलिए जब भी वे मेरे ऐप का उपयोग करते हैं तो यह उपयोगी होता है। (उदाहरण के लिए, मेरे पास एक प्रारंभ समय और अंत समय है, मैं चाहता हूं कि वे हर बार ऐप खोलने के बजाय उन्हें सहेजने में सक्षम हों)।

मैं इस बारे में सोचने का सबसे आसान तरीका सोच रहा था कि फ़ाइल को एक एक्सएमएल फ़ाइल में सहेजना होगा, लेकिन एंड्रॉइड ट्यूटोरियल्स को देखने के बाद, केवल कोडिंग मैं एक्सएमएल फाइलों के बारे में समझ सकता था कि संसाधन फाइलों को कैसे लोड किया जाए फाइलें, लेकिन इन तारों को सहेजने (या संपादित करने) के बारे में कुछ भी नहीं।

मेरे पास इस प्रोजेक्ट के लिए डेटाबेस तक पहुंच नहीं है, इसलिए इसे सीधे फोन पर सहेजने में सक्षम होना चाहिए।

एंड्रॉइड ऐप के लिए 2 तारों को सहेजने का सबसे आसान तरीका क्या है?

उत्तर

21

SharedPreferences पर देखें। आप नाम से साझा प्राथमिकताओं के लिए पूछते हैं, जो इसे अस्तित्व में नहीं बनाता है, तो इसके बाद आप एक संपादक प्राप्त करते हैं, फिर इसमें कुछ नामित मान जोड़ें।

किसी अन्य बिंदु पर आपको साझा प्राथमिकताएं मिलती हैं और अपने मूल्यों को नाम से बाहर खींचती हैं, आप इसमें एक श्रोता भी जोड़ सकते हैं ताकि आपको अपनी साझा प्राथमिकता ऑब्जेक्ट में परिवर्तनों की अधिसूचना दी जा सके।

हो रही अपने साझा वरीयता:

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE); 

एक मूल्य सहेजा जा रहा है:

SharedPreferences.Editor e = myPrefs.edit(); 
e.putInt("someValue", 50); // add or overwrite someValue 
e.commit(); // this saves to disk and notifies observers 

एक मूल्य प्राप्त कर रहा है:

int i = myPrefs.getInt("someValue", 0); // return 0 if someValue doesn't exist 
+3

बस एक छोटी सी चीज। int i = myPrefs.getInt ("someValue", defValue); आपको एक डिफ़ॉल्ट मान भी देना होगा। – Piscean

2

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

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){ 
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean silent = settings.getBoolean("silentMode", false); 
     setSilent(silent); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("silentMode", mSilentMode); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 

बस अपनी स्थिति में आपको स्ट्रिंग और इंटीजर के लिए प्राप्त करने और विधियों का उपयोग करना चाहिए और यह जानकारी एंड्रॉइड डेवलपर वेबसाइट here पर अधिक जानकारी मिल सकती है।

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