मैं Xamarin.Android में साझा किए गए संदर्भों का उपयोग कैसे करूं?




(3)

मैं अपने Xamarin.Android प्रोजेक्ट में कुछ एप्लिकेशन सेटिंग्स को सहेजना और पुनर्प्राप्त करना चाहता हूं।

मुझे पता है कि एंड्रॉइड (जावा) में, मैं इस जानकारी को स्टोर करने के लिए क्लास SharedPreferences का उपयोग करता हूं, लेकिन मुझे नहीं पता कि इसे एक्समरिन सी # में कैसे परिवर्तित किया जाए।

जब मैं ज़ैमरिन स्टूडियो आईडीई में "साझाकरण" टाइप करता हूं, तो कोई ऑटो-पूर्णता नहीं होती है, इसलिए मुझे नहीं पता कि इसका उपयोग कैसे किया जाए।

इंटरवेब्स की शुरुआती खोज ने मुझे एक संबंधित प्रश्न पर ले लिया, लेकिन इसमें केवल एंड्रॉइड जावा शामिल है:

तो संक्षेप में:

  • एंड्रॉइड जावा के SharedPreferences के SharedPreferences एंड्रॉइड सी # समतुल्य क्या है?

Xamarin.Android SharePreferences के बराबर SharedPreferences नामक एक इंटरफ़ेस है।

इसे उसी तरह प्रयोग करें, और आप आसानी से एंड्रॉइड कोड पोर्ट कर सकते हैं।

उदाहरण के लिए, कुछ Context का उपयोग करके एक सच्चे / झूठे bool को सहेजने के लिए आप निम्न कार्य कर सकते हैं:

ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext);
ISharedPreferencesEditor editor = prefs.Edit ();
editor.PutBoolean ("key_for_my_bool_value", mBool);
// editor.Commit();    // applies changes synchronously on older APIs
editor.Apply();        // applies changes asynchronously on newer APIs

सहेजे गए मूल्यों का उपयोग करके:

ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (mContext);
mBool = prefs.GetBoolean ("key_for_my_bool_value", <default value>);
mInt = prefs.GetInt ("key_for_my_int_value", <default value>);
mString = prefs.GetString ("key_for_my_string_value", <default value>);

इस नमूने से, आप देख सकते हैं कि एक बार जब आप सही सी # इंटरफ़ेस का उपयोग करने के लिए जानते हैं, तो बाकी आसान है। अधिक जटिल स्थितियों के लिए SharedPreferences का उपयोग करने के तरीके पर कई एंड्रॉइड जावा उदाहरण हैं, और इन्हें ISharedPreferences का उपयोग करके बहुत आसानी से पोर्ट किया जा सकता है।

अधिक जानकारी के लिए, इस धागे को पढ़ें:


आप Xamarin.Android में साझा किए गए संदर्भों के लिए इस उदाहरण का उपयोग कर सकते हैं

सबसे पहले, आपको उपयोग करने की आवश्यकता है:

ISharedPreferences //Interface for accessing and modifying preference data
ISharedPreferencesEditor // Interface used for modifying values in a ISharedPreferences

आप एक समान कक्षा बना सकते हैं

public class AppPreferences
{
    private ISharedPreferences mSharedPrefs;
    private ISharedPreferencesEditor mPrefsEditor;
    private Context mContext;

    private static String PREFERENCE_ACCESS_KEY = "PREFERENCE_ACCESS_KEY";

    public AppPreferences (Context context)
    {
        this.mContext = context;
        mSharedPrefs = PreferenceManager.GetDefaultSharedPreferences(mContext);
        mPrefsEditor = mSharedPrefs.Edit ();            
    }

    public void saveAccessKey(string key){
        mPrefsEditor.PutString(PREFERENCE_ACCESS_KEY, key);
        mPrefsEditor.Commit();
    }

    public string getAccessKey(){
        return mSharedPrefs.GetString(PREFERENCE_ACCESS_KEY, "");
    }
}

गतिविधि से।

Context mContext = Android.App.Application.Context;
AppPreferences ap = new AppPreferences (mContext);

अगर आप कुछ मूल्य बचाना चाहते हैं:

string key = "123123";
ap.saveAccessKey (key);

यदि आप मूल्य प्राप्त करना चाहते हैं

string key = ap.getAccessKey();

मुझे आशा है कि यह उदाहरण आपको मदद करेगा


सुनिश्चित नहीं है कि आप अभी भी नहीं जानते हैं या नहीं, लेकिन सुनिश्चित करें कि यदि आप किसी फ़ंक्शन के अंदर हैं तो आप अपने चर का निपटान करें:

prefs.Dispose();
prefEditor.Dispose();

जब भी इसकी आवश्यकता नहीं होती है तब स्मृति को निपटाने की वजह से मुझे कुछ समय में अपने ऐप पर क्रैश / फ्रीज था।







xamarin.android