Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

كيف تكتب شاشة الإعدادات في تطبيق Android

by
Difficulty:BeginnerLength:LongLanguages:

Arabic (العربية/عربي) translation by Meyria (you can also view the original English article)

Final product image
What You'll Be Creating

فريق تصميم المواد في Google يقدم تعريفًا واضحًا للإعدادات الموجودة في تطبيق Android لديك:

إعدادات التطبيق السماح للمستخدمين بالإشارة إلى تفضيلات لكيف ينبغي أن تتصرف تطبيق.

أنهم في جوجل الدولة أيضا أن المستخدمين يجب أن انتقل إلى إعدادات التطبيق أما من قائمة شريط الأدوات أو التنقل الجانبي – مع عنصر المسمى الإعدادات.

يعطي المستخدمين القدرة على التحكم في بعض من الأداء الوظيفي للتطبيق الخاص بك بما في ذلك الإعدادات في التطبيق الخاص بك. وهذا يجعل المستخدمين سعيد بدلاً من الغضب – لأنهم الآن في السيطرة على سلوك التطبيق.

من المستحسن بشدة منح حق الوصول إلى إعدادات التطبيق. وهذا سيوفر تجربة أفضل لمستخدم للمستخدمين، الأمر الذي يؤدي إلى إجراء استعراض أفضل على مخزن اللعب Google، ترتفع فيها، ثم في نهاية المطاف يعطي لعدد أكبر من تنزيل التطبيق (وهو زيادة الإيرادات).

افترض يمكنك يجب أن تعاملوا مع الإعدادات التطبيق على الجهاز الخاص بك، على سبيل المثال عن طريق تحديد نغمة افتراضية، أو بالتحكم في الخصوصية الخاصة بك في التطبيق تقريبا جميع التطبيقات الأكثر شعبية يمكنك تنزيلها أو سيتم تحميل على مخزن اللعب Google تشمل إعدادات الشاشة لتتمكن من التحكم في سلوك التطبيق.

مثال على تطبيق شائع يحتوي على شاشة إعدادات هو تطبيق Chrome لنظام التشغيل Android من Google. في شاشة إعدادات هذا التطبيق ، يمكن للمستخدمين اختيار محرك البحث الافتراضي ، وتغيير سلوك الإخطار ، والتحكم في خصوصية المستخدم ، إلخ. يمكنك رؤية ذلك بنفسك عن طريق تنزيل تطبيق Chrome من متجر Google Play (إذا لم يكن لديك بالفعل على جهازك). لقطة الشاشة التالية من تطبيق Chrome ، وتعرض شاشة إعدادات التطبيق.

Screenshot of Chrome app settings screen

في هذه المشاركة ، ستتعرف على كيفية إنشاء شاشة إعدادات التطبيق من البداية وكذلك كيفية قراءة القيم التي حددها المستخدم من إعدادات التطبيق. للحصول على مكافأة إضافية ، ستتعلم أيضًا كيفية استخدام ميزة قوالب Android Studio لتشغيل مشروعك بسرعة باستخدام شاشة الإعدادات.

يمكن العثور على عينة من المشروع (في Kotlin) لهذا البرنامج التعليمي على الريش GitHub لدينا حتى تتمكن من متابعة بسهولة على طول.

المتطلبات الأساسية

ليتمكن من متابعة هذا البرنامج التعليمي، سوف تحتاج إلى:

  • فهم أساسي لبعض واجهات برمجة تطبيقات Android (مثل SharedPreferences)
  • Android Studio 3.0 أو إصدار أحدث
  • Kotlin plugin 1.1.51 أو أعلى

1-إنشاء مشروع استوديو الروبوت

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

Android Studio create project screen

2. إنشاء PreferenceFragment

لدعم API مستوى 11 (قرص العسل) وما فوقها ، يمكننا استخدام PreferenceFragment .هذا الفصل هو ببساطة شظية الذي يظهر تسلسل هرمي Preference الكائنات كقوائم.

في الكود أعلاه ، أنشأنا nested class SettingsFragment في داخل SettingsActivity (بسبب ال SetttingsFragment الطبقة صغيرة جدا). لاحظ أن صفنا SetttingsFragment الطبقة صغيرة جدا). لاحظ أن صفنا SettingsFragment  يمتد PreferenceFragment الطبقة الفائقة ولها طريقة addPrerenceFromResource في داخل onCreate(). في هذا الأسلوب، أعطينا أنه مورد معرف R.xml.preference من XML المفضل للتشغيل — عند تحميل التجزئة. وأخيرًا ، نستضيف جزءًا من النشاط باستخدام ببساطة FragmentTransaction لإضافته إلى واجهة المستخدم - بالداخل onCreate() of SettingsActivity.

3-خلق خياراتنا

إنشاء ملف XML وتسميته preferences.xml. حفظ هذا الملف داخل الدليل res/xml في المشروع التطبيق الخاص بك. ملاحظة يمكنك إعطاء هذا الملف أي اسم ولكن المستحسن بشدة التمسك باسم التقليدية "تفضيلات". أيضا، يجب عادة أن يكون مثل ملف واحد فقط في مشروع تطبيق.

يجب أن تكون عقدة الجذر لملف preferences.xml يجب أن يكون الملف:      جزء.   < PreferenSreen> داخل هذا العنصر الجذري ، لدينا الآن فردنا Preference. فيما يلي السمات العامة المرتبطة بـ Preference.

  • android:key:  هذه السمة تستخدم للحصول على القيمة في SharedPreferences موضوع.
  • الروبوت: العنوان: تعيين العنوان للأفضلية. وهذا هو نص غامق.
  • الروبوت: موجز: مجموعات الموجز للتفضيل (وهذا غير مطلوب). هذا هو تﻻشى النص تحت العنوان.
  • android:defaultValue: يحدد القيمة الافتراضية لـ Preference.

ونحن سوف تذهب من خلال كل التفضيل لقد حددنا أعلاه قريبا. علما أنه يمكنك أيضا إضافة أو تخصيص تفضيل عبر محرر تفضيل استوديو الروبو – مشابهة لمحرر المورد تخطيط كنت بالفعل معتاداً. يمكنك أما اختيار إضافة/تحرير ملف XML تفضيل الخاص بك مباشرة في وضع "النص" أو استخدام واجهة السحب والإفلات في وضع "تصميم".

Android Studio preference editor

كما ترون، في هذا المحرر، يمكنك سحب وإسقاط أي تفضيل في قسم لوح (على الجانب الأيسر). بمجرد إسقاط، يجب تحديده وتعديل السمات الخاصة به في جزء سمات (على الجانب الأيمن) للمحرر. لاحظ أنه بشكل افتراضي، نحن كنت نظراً لسمات قليلة لتعديل. لعرض أو تعديل جميع السمات المرتبطة بتفضيل محددة، تأكد من النقر فوق View all attributes الرابط في الجزء السفلي من جزء السمات. هذا يشبه إلى حد كبير محرر التصميم الذي تعرفه بالفعل.

الآن، دعونا نذهب من خلال كل كيان من الكيانات تفضيل لدينا.

خانة الاختيار المفضل

CheckBoxPreference هو ببساطة خانة الاختيار القطعة التي يتم تضمينها في شاشة التفضيل. هذه Preferenceإرجاع القيمة "true" إذا تم تحديدها أو "false" بخلاف ذلك. بمعنى آخر ، تقوم بإرجاع قيمة منطقية بناءً على حالة عنصر واجهة المستخدم.

CheckBoxPreferense

سمات أخرى يمكنك إضافتها إلى CheckBoxPreference:

  • الروبوت: سوماريوف: مجموعات الموجز للأفضلية في شاشة تفضيلات عندما يكون دون رادع.
  • الروبوت: سمرين: مجموعات الموجز للأفضلية في شاشة تفضيلات عندما يتم إيداعه.
  • الروبوت: ديسابليديبيندينتستاتي: الدولة (ينطبق على، أو كاذبة لإيقاف) الذي يسبب التوابع إلى تعطيل. قد تكون قيمة منطقية، مثل "صواب" أو "خطأ".

يفضل التبديل

SwitchPreference  ينفذ وظائف مماثلة ل CheckBoxPreference. يوفر خيار الدولتين ("على" أو "إيقاف") قابل للتغيير. هذا يستخدم Switch القطعة التي تسمح للمستخدم بالانزلاق إلى اليسار ("إيقاف") واليمين ("على"). هذا التفضيل يتضمن أيضًا السمات الموصوفة للإخراج  CheckBoxPreference في الاعلى. بالإضافة إلى ذلك ، فإنه يحتوي على السمات التالية:

  • الروبوت: سويتشتيكستوف: تعيين النص استخدام التبديل نفسها عندما تكون في حالة "إيقاف التشغيل".
  • الروبوت: سويتشتيكستون: تعيين النص استخدام التبديل نفسها عندما تكون في الدولة "وعلى".
SwitchPreference

تفضيل EditText

هذا التفضيل، عند النقر فوقه، يظهر مربع حوار للمستخدم بإدخال نص إدخال. فإنه يستخدم القطعة EditText — بما في ذلك جميع سمات تلك القطعة التي كنت بالفعل معتاداً.

لاحظ أن القيمة المخزنة في شاريدبريفيرينسيس سلسلة.

EditTextPreference

قائمة التفضيل

سيتم عرض هذا النوع من تفضيل قائمة الإدخالات في مربع حوار عند استغلالها. هنا، يمكنك تحديد زوج من صفيف سلسلة الموارد في تفضيلاتك XML. ويتضمن هذا المورد صفيف السلسلة ببساطة عبارة عن مجموعة من السلاسل. ويقع هذا المورد في res/values/arrays.xml.

ها هي عينتنا ListPreference باستخدام هذا المورد.

قمنا بتعيين القيم وقيم الإدخال باستخدام android:entries و android:entryValues الصفات على التوالي.

  • الروبوت: إدخالات: الصفيف الإنسان للقراءة لعرض كقائمة.
  • الروبوت: انتريفالويس: الصفيف لإيجاد قيمة لحفظ ليتم تحديد تفضيل عند مدخل من مداخل.
ListPreference dialog when clicked

على سبيل المثال، إذا استخدمنا عدد الدقائق في كل المدة كقيم الإدخال، عندما يختار المستخدم مدة زمنية (مثلاً 30 دقيقة)، سيتم تخزين قيمة عدد صحيح المطابق في شاريدبريفيرينسيس (30 مثلاً).

القائمة multiSelect الأفضلية

هذا واحد مشابه ل ListPreference ولكن بدلاً من وجود أزرار الاختيار ، لدينا خانات اختيار. بمعنى آخر ، يمكن للمستخدم تحديد عناصر متعددة في مربع الحوار. لاحظ أن النتيجة يتم تخزينها في "سلسلة" في مجموعة شاريدبريفيرينسيس. وهذا يمكن استرداد باستخدام getStringSet().

تفضيل رنة

عندما يتم استغلالها رينجتونيبريفيرينسي، يظهر مربع حوار يحتوي على قائمة النغمات المتوفرة على الجهاز أو المحاكي.

  • الروبوت: شووديفولت: سواءا كان النغمة الأساسية سيتم عرض الخيار.
  • الروبوت: شووسيلينت: ما إذا كان سيظهر خيار صامت في القائمة. يمكن للمستخدم تحديد هذا الخيار إذا كانت لا تريد أن تلعب أي نغمة.
RingtonePreference

لاحظ أن القيمة المخزنة في SharedPreferences لهذا التفضيل هو سلسلة خاصة. هذه السلسلة الخاصة هي URI التي تشير إلى ContentProvider.

4-إنشاء إعداد المجموعات

أن تصبح مشكلة عندما يكون لديك قائمة طويلة من تفضيلات أو إعدادات، لأنه قد يكون لدى المستخدمين صعوبة بعض المسح الضوئي أو فهم لهم. لحل هذه المشكلة، ونحن المجموعة خياراتنا. نلقي نظرة على لقطة لشاشة التطبيق الكروم قد أظهرت لك في البداية مرة أخرى – إشعار من تجميع التفضيلات إلى فئتين: أساسيات وخيارات متقدمة. وهذا يجعل من الأسهل بالنسبة للمستخدم لفهم التفضيلات وجعل القائمة تبدو ساحقة جداً لا.

دعونا الآن ننظر كيف بسيط لأداء هذه المهمة.

نحن ببساطة تحيط اﻷفضليات التي نريد في المجموعة <PreferenceCategory>الوسم وإعطاء كل مجموعة عنوان باستخدام سمة العنوان: الروبوت.

Preferences grouped with PreferenceCategory

5-وبدءا بنية

لاحظ أنه يمكن فتح نشاط بمجرد النقر فوق عنصر تفضيل من إعدادات الشاشة. وهذا يمكن أن تأتي في متناول اليدين عندما تريد فتح صفحة ويب. هنا هو رمز للقيام بذلك:

هنا، وأضاف نحن <intent>عنصر داخل <Preference>عنصر.

  • الروبوت: العمل: مجموعات العمل عن القصد (وهذا مماثل لاستدعاء setAction() في كائن نوايا).
  • الروبوت: تارجيتكلاس: تعيين جزء فئة اسم العنصر (نفس الدعوة setComponent() على كائن نوايا).
  • الروبوت: تارجيتباكاجي: تعيين حزمة جزء من اسم العنصر.
  • الروبوت: البيانات: مجموعات البيانات لتعيين (نفس الدعوة setData() على كائن نوايا).

على سبيل المثال، لفتح صفحة ويب، يمكن استخدام ما يلي:

6-ربط الموجز تفضيل القيمة المحددة

دعونا نرى الآن كيفية تحديث تفضيل موجزة مع القيمة المحددة من قبل المستخدم.

في هذه الفئة، قمنا بإنشاء أسلوب مساعد يسمى bindPreferenceSummaryToValue()، وداخل كائن رفيق لدينا، لتحديث نص التلخيص التفضيل مع القيمة التي قام المستخدم بتحديده. ونحن مرت عليه كائن تفضيل كوسيطة. وسيعود findPreference() تفضيل استخدام المفتاح للتفضيل.

لدينا متغير sBindPreferenceSummaryToValueListener هذا هو مثال Preference.OnPreferenceChangeListener. هذا هو ببساطة مستمع تغيير التفضيلات التي ستساعدنا في تحديث ملخص التفضيل إلى القيمة التي حددها المستخدم. نتحقق من وجود حالات خاصة ، مثلما يحدث عندما يكون التفضيل المحدد هو  RingtonePreference  أو ListPreference. لأنواع تلك الأفضلية، ونحن نفعل بعض معالجة خاصة الحصول على سلسلة موجزة. إذا كان التفضيل ليس (مثل اديتيكستبريفيرينسي)، أننا مجرد مجموعة الموجز إلى سلسلة القيمة الأفضلية.

داخل bindPreferenceSummaryToValue()، حددنا المستمع تغيير الأفضلية باستدعاء أونبريفيرينسيكهانجيليستينير (في جاوة، في سيتونبريفيرينسيكهانجيليستينير بدلاً من ذلك) على كائن الأفضلية.

قم الآن بتشغيل المشروع مرة أخرى لترى كيف يعمل كل شيء!

Settings screen showing changed summary in response to selection

7-استرداد قيم الأفضلية

للبدء في الحصول على قيم التفضيلات لشاشة الإعدادات ، نسميها getDefaultSharedPreference() وهو داخل فئة PreferenceManager - تمريرها Context الهدف من التفضيلات التي تكون قيمها مطلوبة. لاحظ أننا نحصل على القيم من الإعداد الافتراضي لطلبنا    SharedPreferences.

يمكنك استدعاء الأسلوب getter المقابلة لنوع نريد استرداد القيمة من شاريدبريفيرينسيس. يمكنك تمرير المفتاح كالوسيطة الأولى، والقيمة الافتراضية هي الوسيطة الثانية.

8-مكافأة: استخدام قوالب استوديو الروبوت

والآن بعد أن كنت قد تعلمت حول واجهات برمجة التطبيقات المشتركة إنشاء شاشة إعدادات من الصفر في الروبوت، سوف تظهر لك اختصار تجعل من أسرع في المرة القادمة. يمكنك اختيار استخدام قالب بدلاً من ترميز إعدادات شاشة من نقطة الصفر.

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

لاستخدام هذه الميزة مفيدة لمشروع جديد، أولاً النار استوديو الروبوت.

Android Studios Create Android Project dialog

أدخل اسم التطبيق ثم انقر فوق زر التالي. يمكنك ترك الافتراضيات كما هي في   الحوارTarget Android Devices.

انقر فوق زر التالي مرة أخرى.

Android studios Add an Activity to Mobile dialog

في إضافة نشاط للحوار المحمول، قم بالتمرير لأسفل وحدد إعدادات النشاط. انقر فوق زر التالي بعد ذلك.

Android Studios Configure Activity dialog

في مربع الحوار الأخير، يمكنك إعادة تسمية اسم النشاط أو تخطيط الاسم أو العنوان إذا أردت. وأخيراً، انقر فوق الزر إنهاء لقبول كافة التكوينات.

استوديو الروبوت قد ساعدنا الآن لإنشاء مشروع باستخدام إعدادات نشاط. رائع حقاً! ينصح بشدة لاستكشاف التعليمة البرمجية التي تم إنشاؤها.

يمكنك استخدام قوالب لمشروع "استوديو الروبوت قائم بالفعل أيضا. ببساطة الذهاب إلى ملف > الجديدة > النشاط > النشاط الإعدادات.

Navigation flow to creating a new settings activity in Android Studio

ملاحظة القوالب التي تأتي المضمنة مع "استوديو الروبوت" جيدة لتخطيطات بسيطة، وجعل تطبيقات الأساسية، ولكن إذا كنت تريد حقاً بدء التطبيق الخاص بك, قد تفكر بعض قوالب التطبيق متاح من الأسواق Envato.

أنهم وقت المدخر ضخم للمطورين ذوي الخبرة، مما يساعدهم على قطع طريق مستنقع لإنشاء تطبيق من الصفر وتركيز مواهبهم بدلاً من ذلك على أجزاء فريدة من نوعها ومخصصة لإنشاء تطبيق جديد

الاستنتاج

في هذا البرنامج التعليمي، يمكنك تعلم كيفية إنشاء إعدادات التطبيق في الروبوت من نقطة الصفر. وبحثنا أيضا في كيفية بسهولة وسرعة استخدام قوالب الروبوت Studio لإنشاء إعدادات التطبيق.

أنا أوصى التحقق من المبادئ التوجيهية الرسمية التصميم المادي لإعدادات مزيد من المعلومات حول كيفية تصميم بشكل صحيح واستخدم الإعدادات في الروبوت. أيضا، راجع الدليل API الرسمي مزيد من المعلومات حول واجهات برمجة التطبيقات الأخرى لإنشاء نشاط إعدادات.

لمزيد من المعلومات حول ترميز للروبوت، تحقق بعض الدورات والدروس هنا في Envato Tuts + الأخرى!


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.