سوف نتعلم في هذه الدرس على ماهي Activity والتي يمكن نلخصها في عدة نقاط:
1-ببساطة الـ Activity هي عبارة عن الشاشة التي يراها المستخدم في
التطبيق أي بمعنى أن كل شاشة في تطبيقك تسمى بـ Activity .
2-أي تطبيق يمكن أن لايحتوي على أية Activity ويمكن أن يحتوي أكثر من شاشة لكن غالبا تجد أن
أي تطبيق يحتوي على الأقل شاشة واحدة فقط.
4-أي activity تكون في بعض الأحيان ظاهرة للمستخدم وبعض
الأحيان تكون مخفية وهو
مايسمى بـ دورة حياة activity وسنقوم بشرحه بالتفصيل.
ممن ماذا تتكون الـ Activity؟
في أي مشروع اندرويد تتكون الـ activity من ثلاثة عناصر رئيسية وهي:
1-كلاس
جافا ووظيفة هذا الكلاس التحكم في العناصر التي يتم إضافتها الى هذه الشاشة
كمثال:عندما نريد وضع عمل معين عند الضغط على زر معين في هذه الشاشة .. يتم كتابة
هذه الكود في كلاس الجافا.
2-ملف layout :وهو
عبارة xml يكون
في حافظة res>layout ويحتوي هذا الملف على تصميم الواجهة التي ستظهر
للمستخدم وكيفية ترتيب العناصر عليها.
3-ملف R.java :يقوم بالربط بين ملف الـlayout وكلاس الجافا بحيث أن كل عنصر في ملف layout يتم تحديد id فريد ويتم تخزين الـid في ملف R.java ثم يتم اللوصول لهذه اللعنصر والتحكم فيها من
خلال id .
كيفية إنشاء الـ Activity
نقوم بإنشاء الـ Activity بعدة خطوات :
1- إنشاء كلاس مشتق من الكلاس AppCompatActivity وهو النسخة الجديدة من Activity القادمة مع النسخة الجديدة من اندرويد مارشميلو.
2-عمل Override لدالة onCreate وهي دالة تتنفذ عند إنشاء الـ Activity .
3-ربط الـ Activity بملف الـ layout ويكون ذلك عبر استدعاء الدالة setContentView وثم تمرير لها id الخاص بملف الذي نريده أن يكون الواجهه الرسومية كمثال نريد أن يكون ملف main.xml:
2-عمل Override لدالة onCreate وهي دالة تتنفذ عند إنشاء الـ Activity .
3-ربط الـ Activity بملف الـ layout ويكون ذلك عبر استدعاء الدالة setContentView وثم تمرير لها id الخاص بملف الذي نريده أن يكون الواجهه الرسومية كمثال نريد أن يكون ملف main.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package com.blogspot.muteealjabri.Activites; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } |
4-إضافة Activity إلى ملف Manifest.xml
ويجب إضافة كل Activity إلى ملف Manifest.xml وبدونها لن يتم عرض هذه الـ Activity في البرنامج.
ويمثل هذا الشكل كيفية إضافة الـ Activity في ملف manifest.xml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version=”1.0” encoding=”utf-8” ?> <manifest xmlns:android=”http://schemas.android.com/apk/res/android” package=”com.blogspot.muteealjabri.Activities” android:versionCode=”1” android:versionName=”1.0” > <application android:icon=”@drawable/icon” android:label=”@string/app_name” > <activity android:name=”.MainActivity” android:label=”@string/app_name”> <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion=”9” /> </manifest> |
تتم إضافة الـ activity داخل الوسم <application>بواسطة الوسم <activity> ويحتوي على بعض الخصائص:
1-الخاصية android:name=".MainActivity"
هنا يتم تحديد ملف الجافا لهذه الـActivity
2-الخاصية android:label="@string/app_name"
هنا يتم تحديد العنوان الذي سيظهر بأعلى الشاشة عند فتح هذه الـActivity
يوجد بداخل الوسم <activity> وسم آخر
وهو <intent-filter> ووظيفة
هذه الوسم يقوم بفحص الـ intent الذي ستتقبله هذه الـ activity وسيكون هناك درس خاص لشرح مفهوم Intent في الاندرويد.
شرح Life Cycle دورة حياة الـ activity:
دورة حياة Activity هي مجموعة من الاحداث التي تمر بها الـ Activity ويتم تعريفها عبر مجموعة من الداول الموجودة في الكلاس AppCompatActivity وهي كمايلي:
1-()onCreate :ويتم إستدعائها عند إنشاء الـ Activity اول مرة.
2-()onStart : ويتم إستدعائها قبل ظهور الـ Activity على الشاشة.
3-()onResume : ويتم إستدعائها عندما يتم ظهور الشاشة أمام المستخدم.
4-()onPause : ويتم إستدعائها عندما تكون الـ activity في حالة pause وتكون الـ activity التي قبلها في حالة onResume.. وغالبا يتم أستدعاء هذه الدالة عند الضغط على زر Back في جهاز الهاتف.
5-()onStop : ويتم إستدعائها عندما تكون الـ Activity مخفية أي غير ظاهرة للمستخدم.
6-()onDestory : ويتم إستدعائها عند تدمير الـ Activity بواسطة النظام وهنا يتم إزالة الـ activity من الذاكرة.
7-()onRestart : ويتم إستدعائها عندما تكون الـ Activity في حالة stop وثم تعود للظهور مرة أخرى.
ويبين الشكل دورة حياة الـ activity:
وهنا نكون انتهينا من شرح الـActivity في الاندرويد .. رايكم يهمني بالتعليقات.