من خلال مربّع الحوار إنشاء فئة جديدة ونماذج الملفات، يساعدك "استوديو Android" في إنشاء الفئات والأنواع الجديدة التالية بسرعة:
- فئات Java
- فئات التعداد والفئات الفردية
- أنواع الواجهات والتعليقات التوضيحية
بعد ملء حقول مربّع الحوار إنشاء فئة جديدة والنقر على حسنًا، ينشئ "استوديو Android" ملف .java يحتوي على رمز هيكلي، بما في ذلك عبارة حزمة وأي عمليات استيراد ضرورية وعنوان وإعلان فئة أو نوع. بعد ذلك، يمكنك إضافة الرمز إلى هذا الملف.
تحدّد نماذج الملفات كيفية إنشاء "استوديو Android" لرمز الهيكل. يمكنك استخدام نماذج الملفات المتوفّرة مع "استوديو Android" كما هي، أو تخصيصها لتناسب عملية التطوير.
عرض نماذج الملفات وتخصيصها
يوفّر "استوديو Android" نماذج ملفات تحدّد كيفية إنشاء فئات وأنواع Java جديدة باستخدام مربّع الحوار إنشاء فئة جديدة. يمكنك تخصيص هذه النماذج.
الشكل 1 مربّع الحوار إنشاء صف جديد
تتضمّن نماذج الملفات في "استوديو Android" رموزًا برمجية بلغة Velocity Template Language (VTL) ومتغيّرات تعالج هذه الخيارات الإضافية. يستخدم مربّع الحوار إنشاء صف جديد نماذج الملفات AnnotationType وClass وEnum وInterface وSingleton.
للاطّلاع على النماذج والعثور على التخصيصات وتعديل النماذج، اتّبِع الخطوات التالية:
نفّذ أيًا مما يلي:
- في نظام التشغيل Windows أو Linux، اختَر ملف (File) > الإعدادات (Settings) > المحرّر (Editor) > نماذج الملفات والرموز (File and Code Templates) > الملفات (Files).
- في نظام التشغيل macOS، انقر على استوديو Android > الإعدادات المفضّلة > المحرّر > نماذج الملفات والرموز > الملفات.
في قائمة النماذج، تظهر أسماء النماذج الداخلية بخط غامق. تظهر أسماء النماذج المخصّصة بلون مميّز، مثل الأزرق.
خصِّص نماذج الملفات حسب الحاجة.
إذا كنت تريد استخدام حقول مربّع الحوار إنشاء فئة جديدة، تأكَّد من أنّ التغييرات التي أجريتها تتوافق مع رمز نموذج ملف "استوديو Android".
لمزيد من المعلومات حول نماذج الملفات، بما في ذلك VTL، راجِع نماذج الملفات والرموز ومربّع الحوار نماذج الملفات والرموز.
إنشاء فئة أو نوع Java
يساعدك "استوديو Android" في إنشاء فئات Java جديدة، وفئات التعداد وفئات سينغلتون، وأنواع الواجهات والتعليقات التوضيحية استنادًا إلى نماذج الملفات.
لإنشاء فئة أو نوع Java جديد، اتّبِع الخطوات التالية:
- في نافذة المشروع، انقر بزر الماوس الأيمن على ملف أو مجلد Java، ثم اختَر جديد > فئة Java.
- في مربّع الحوار إنشاء صف جديد، املأ الحقول التالية:
- الاسم: اسم الفئة أو النوع الجديدَين. ويجب أن يتوافق مع متطلبات أسماء Java. لا تكتب امتداد اسم الملف.
- النوع: اختَر فئة الصف أو نوعه.
- الفئة الرئيسية: هي الفئة التي تستند إليها فئتك الجديدة. يمكنك كتابة اسم الحزمة واسم الفئة، أو اسم الفئة فقط، ثم النقر المزدوج على عنصر في القائمة المنسدلة لإكماله تلقائيًا.
- الواجهات: واجهة واحدة أو أكثر تنفّذها الفئة أو النوع الجديدان. يجب الفصل بين الواجهات المتعددة باستخدام فاصلة متبوعة بمسافة اختيارية. يمكنك كتابة اسم الحزمة واسم الواجهة، أو اسم الواجهة فقط، ثم النقر مرّتين على عنصر في القائمة المنسدلة لإكماله تلقائيًا.
- الحزمة: الحزمة التي سيتم تخزين الفئة أو النوع فيها. يظهر الإعداد التلقائي تلقائيًا في الحقل. إذا كتبت اسم حزمة في الحقل، سيتم تمييز أي أجزاء من معرّف الحزمة غير المتوفّرة باللون الأحمر. وفي هذه الحالة، ينشئ استوديو Android الحزمة بعد النقر على حسنًا. يجب أن يحتوي هذا الحقل على قيمة، وإلا لن يحتوي ملف Java على عبارة
package، ولن يتم وضع الفئة أو النوع ضمن حزمة في المشروع. - مستوى العرض: اختَر ما إذا كان الصف أو النوع مرئيًا لجميع الصفوف أو للصفوف الموجودة في الحزمة نفسها فقط.
- المعدّلات: اختَر المعدّل Abstract أو Final للفئة، أو لا تختَر أيًا منهما.
- عرض مربّع الحوار "تحديد عمليات الإلغاء" (Show Select Overrides Dialog): بالنسبة إلى نوع فئة، ضَع علامة في هذا الخيار لفتح مربّع الحوار "تحديد الطرق التي سيتم إلغاؤها أو تنفيذها" (Select Methods to Override/Implement dialog) بعد النقر على حسنًا (OK). في هذا المربع، يمكنك اختيار الطرق التي تريد تجاهلها أو تنفيذها، وسينشئ "استوديو Android" رمزًا هيكليًا لهذه الطرق.
- انقر على موافق.
يمكنك بدلاً من ذلك اختيار ملف أو مجلد Java في نافذة المشروع، أو النقر في ملف Java في "محرّر الرموز". بعد ذلك، انقر على ملف > جديد > فئة Java.
يحدّد العنصر الذي تختاره الحزمة التلقائية للصف أو النوع الجديد.
تعمل ميزة الإكمال التلقائي مع اسم الواجهة الأول فقط. يُرجى العِلم أنّه على الرغم من أنّ الفاصلة واسم الواجهة التاليَين يمكن أن يؤديا إلى ظهور خطأ في تلميح الأدوات، يمكنك تجاهل الخطأ لأنّه لا يؤثر في الرمز البرمجي الذي تم إنشاؤه.
يعتمد الإعداد التلقائي على طريقة فتح مربّع الحوار إنشاء صف جديد. إذا اخترت أولاً ملف Java أو مجلدًا في نافذة المشروع، سيكون الإعداد التلقائي هو الحزمة الخاصة بالعنصر الذي اخترته. إذا نقرت أولاً في ملف Java في "محرّر الرموز"، سيكون الإعداد التلقائي هو الحزمة التي تحتوي على هذا الملف.
يتم إخفاء أي حقول لا تنطبق على النوع.
ينشئ "استوديو Android" ملف Java يحتوي على رمز هيكلي يمكنك تعديله. سيتم فتح الملف في "أداة تعديل الرموز".
ملاحظة: يمكنك إنشاء فئة ذات مثيل واحد من خلال اختيار ملف > جديد > كائن ذو مثيل واحد أو ملف > جديد > فئة Java، وتوفّر الطريقة الأخيرة المزيد من الخيارات.
نماذج ملفات "استوديو Android"
يسرد هذا القسم رمز نموذج ملف استوديو Android المكتوب بلغة البرمجة النصية VTL، متبوعًا بتعريفات المتغيرات. تصبح القيم التي تقدّمها في مربّع الحوار إنشاء صف جديد قيم المتغيّرات في النموذج.
يُرجى العِلم أنّ الأسطر التي تبدأ بالرمز
#if (${VISIBILITY} تمتد حتى القوس المفتوح (
{ ).
نموذج ملف AnnotationType
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")
#if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end {
}
نموذج ملف الصف
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")
#if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}
نموذج ملف التعداد
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")
#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}
نموذج ملف الواجهة
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")
#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
#end {
}
نموذج ملف Singleton
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")
#if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
private static final ${NAME} ourInstance = new ${NAME}();
#if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() {
return ourInstance;
}
private ${NAME}() {
}
}
متغيّرات نموذج الملف
يستبدل "استوديو Android" متغيرات نموذج الملف بالقيم الموجودة في ملف Java الذي تم إنشاؤه. يمكنك إدخال القيم في مربّع الحوار إنشاء صف جديد. يحتوي النموذج على المتغيّرات التالية التي يمكنك استخدامها:
-
IMPORT_BLOCK: قائمة مفصولة بأحرف سطر جديد تتضمّن عبارات Javaimportاللازمة لتوفير أي فئة أساسية أو واجهات، أو سلسلة فارغة (""). على سبيل المثال، إذا كنت تنفّذ واجهةRunnableفقط ولا توسّع أي شيء، ستكون قيمة هذا المتغيّر"import java.lang.Runnable;\n". في حال تنفيذ واجهةRunnableوتوسيع فئةActivity، سيصبح"import android.app.Activity;\nimportjava.lang.Runnable;\n". VISIBILITY: لتحديد ما إذا كان الصف متاحًا للجميع أم لا يمكن أن تكون القيمةPUBLICأوPACKAGE_PRIVATE.-
SUPERCLASS: اسم فئة واحد أو فارغ إذا كانت موجودة، ستظهر عبارةextends ${SUPERCLASS}بعد اسم الفئة الجديد. -
INTERFACES: قائمة قيم مفصولة بفاصلة للواجهات، أو فارغة. في حال توفّرها، ستكون هناك عبارةimplements ${INTERFACES}بعد الفئة الأساسية أو بعد اسم الفئة إذا لم تكن هناك فئة أساسية. بالنسبة إلى الواجهات وأنواع التعليقات التوضيحية، تحتوي الواجهات على الكلمة الرئيسيةextends. ABSTRACT: لتحديد ما إذا كان يجب أن تكون الفئة مجرّدة أم لا. ويمكن أن تتضمّن القيمةTRUEأوFALSE.-
FINAL: لتحديد ما إذا كان يجب أن تكون الفئة نهائية أم لا. يمكن أن تتضمّن قيمةTRUEأوFALSE.