27 – حفظ المعطيات ضمن مجموعات (مفتاح – قيمة ) Saving Key-Value Sets

ملاحظة : الموضوع عبارة عن حلقة من حلقات سلسلة برمجة وتطوير اندرويد Android Development

اندرويد : حفظ المعطيات ضمن مجموعات (مفتاح – قيمة ) Saving Key-Value Sets

السلام عليكم ورحمة الله وبركاته

سوف نتعلم في هذا الدرس مايلي :new prof

  • الحصول على مرجع لغرض SharedPreferences
  • الكتابة في التفضيلات المشتركة Write to Shared Preferences
  • القراءة من التفضيلات المشتركة Read from Shared Preferences

يفضل الاطلاع على موضوع “خيارات التخزين Storage Options” قبل البدء

في حال كان لديك مجموعة صغيرة نسبيا من الثنائيات (مفتاح – قيمة) (key-value) التي ترغب بحفظها, فإنه يتوجب عليك استخدام واجهات SharedPreferences APIs.

يشير غرض SharedPreferences  إلى ملف يحوي على ثنائيات (مفتاح – قيمة ) (key-value) ويزودنا هذا الغرض بطرق بسيطة سهلة لقراءة وكتابة هذه الثنائيات.

تتم ادراة كل ملف SharedPreferences  من قبل اطار العمل , ومن الممكن ان يكن خاص او مشترك.

يوضح لنا هذا الدرس كيفية استخدام SharedPreferences APIs لتخزين واستعادة القيم البسيطة.

ملاحظة : ان واجهات SharedPreferences APIsتستخدم فقط بهدف قراءة وكتابة الثنائيات (مفتاح- قيمة)ويجب الا يتم الخلط بينهم وبين واجهات Preference, والتي تساعدك على بناء واجهة مستخدم خاصة باعدادات تطبيقك app settings . لمزيد من المعلومات حول واجهات Preference APIs, بالامكان الاطلاع على الرابط التاليSettings.

الحصول على مرجع لغرض SharedPreferences

بإمكانك انشاء ملف تفضيلات مشتركة shared preference file او النفاذ إلى احد الملفات الموجودة عبر استدعاء احد التوابع التالية:

–          getSharedPreferences()–  استخدم هذا التابع في حال كنت ترغب في الحصول على عدة ملفات تفضيلات مشتركة , ويميز كل واحد منها عبر اسم, ويتحدد الاسم عبر المعامل الأول. بإمكانك استدعاء هذا التابع ضمن اي سياق Context  ضمن تطبيقك.

–          getPreferences()  – استخدم هذا التابع ضمن الفعالية في حال كنت تحتاج لاستخدام ملف تفضيلات مشتركة وحيد خاص بتلك الفعالية. وبما ان هذا التابع يستعيد ملف التفضيلات المشتركة الافتراضي التابع لهذه الفعالية, فإنك لست بحاجة لذكر اسم.

 

على سبيل المثال, يتم تنفيذ الكود التالي ضمن Fragment.حيث يقوم بالنفاذ إلى ملف التفضيلات المشتركة والمحدد بواسطة سلسلة الموارد المحرفية resource string  R.string.preference_file_key, ويفتح الملف باستخدام النمط الخاص private mode  وبذلك يصبح التطبيق متاحا فقط ضمن تطبيقك.

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);

عندما تقوم بتسمية ملف التفضيلات المشتركة, يتوجب عليك استخدام اسم فريد ويشير إلى تطبيقك, مثل “com.example.myapp.PREFERENCE_FILE_KEY”.

أما في حال رغبت باستخدام ملف تفضيلات مشتركة وحيد لفعاليتك, فإنه بامكانك استخدام التابع getPreferences():

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

تنبيه : في حال انشأت ملف تفضيلات مشتركة باستخدام النمط MODE_WORLD_READABLE أو MODE_WORLD_READABLEعندها فإن اي تطبيق اخر يعلم معّرف الملف file identifier  يستطيع النفاذ إلى معطياتك.

الكتابة في ملف التفضيلات المشتركة Write to Shared Preferences

للكتابة بملف التفضيلات المشتركة , يجب انشاء SharedPreferences.Editorعبر استدعاء edit()على SharedPreferences.

وتقوم بعد ذلك بتمرير المفاتيح والقيم التي ترغب بكاتبتها عبر استخدام التوابع المناسبة مثل putInt() او putString(). ومن ثم تقوم باستدعاء التابع commit() لحفظ التعديلات. على سبيل المثال:

 

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

القراءة من ملف التفضيلات المشتركة Read form shared preferences file

لاستعادة القيم من ملف التفضيلات المشتركة , يتم استدعاء توابع مثل التابع getInt()أو التابع getString(), ونمرر لهم مفتاح القيمة المطلوبة, وبشكل خياري يمكن تمرير قيمة افتراضية ليتم اعادتها في حال لم يتواجد المفتاح.

على سبيل المثال:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

وعند هذا النقطة  نكتفي بما تقدم من شرح حول حفظ المعطيات باستخدام ثنائيات (مفتاح – قيمة)

لنتطرق في الدرس القادم للحديث عن “حفظ الملفات Saving Files”

وإلى ذلك الحين استودعكم الله والسلام عليكم ورحمة الله وبركاته.

, , , , , , , , , , , , , , , , , ,

  1. #1 by Omarion Peace on جانفي 9, 2014 - 2:20 م

    لم افهم جيدا

    • #2 by schwarztiger on جانفي 9, 2014 - 5:04 م

      حدد بالضبط المقطع الذي لم تفهمه حتى اشرحه لك بشكل اوضح

أضف تعليق