Lesson 13

بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا محمد صل الله عليه وسلم

إن شاء الله النهاردة هنتكلم فى كذة موضوع نبدأ بسم الله

أولاً : Android Applications  يحتوى على واحد او اكثر من هذه العناصر وهى : 

1-   Activity: اى صفحة بنشوفها فى اى application اسمها activity واى activity لازم يكون ليها layout.

2-   Service: وهى مالهاش layout زى ال layout اللى لازم يكون موجود فى ال Activity ومن امثلة ال service ال media player بيقدملنا خدمه ولكنه لا يحتوى على layout.

3-   Broadcast Receiver: وهى بتعمل وفقاً لشيء معين احنا اللى بنحدده اول لما بيحصل بتتنفذ على طول ، زى مثلا True caller application قائم على انه اول لما الموبايل يستقبل اتصال البرنامج اتوماتيك بيشتغل ، ليه؟ لان البرنامج يحتوى على broadcast receiver يعمل اول ما الموبايل يستقبل call .

والثلاثة عناصر السابقة توجد منها واحده او اكثر فى اى application .

ثانياً : Activity life cycle :

وفى الجزء ده هنتعرف على دورة حياة ال activity والمراحل اللى بتمر بيها وهى :

1-   onCreate  : ديه method بنعمل ليها override فى ال activity ولازم تكون موجوده فى اى activity ، يعنى غير باقى ال cycles التانية مش لازم نعمل ليهم override فى ال activity بتاعتنا إلا لو هنستخدمهم لكن ال onCreate لازم بنستخدمها لاننا بنعرّف فيها اى حاجه البرنامج محتاجاها اول ما يفتح زى مثلا الViews  اللى بتكون موجوده فى ال layout الخاص بال activity بنعرّفهم فى ال onCreate method.

2-   onStart  : ال application اول ما بيفتح بينفذ ال onCreate method وبعدها على طول بينفذ onStart method بس مش لازم نستخدم onStart method إلا لو احتاجناها .

3-   onResume  : ال cycle ديه مهمه جدا لانها بتتم لما ال application يكون شغال وال user يقدر يتعامل معاه ، ناخد بالنا من حاجه ان onCreate و onStart البرنامج بينفذهم بسرعه جدا ورا بعض وبعد كده البرنامج اتوماتيك بينقل إلى مرحلة ال onResume وديه المرحله اللى بيكون ال user فيها فاتح ال Application وشغال عليه .

4-    onPause : ال cycle بتتم لما ال Application بتاعنا يكون اختفى بسبب ان application  تانى اشتغل زى مثلا واحنا شغالين على اى application وبعد كل الموبايل يرن كده ال application الخاص بال Call هو اللى هيكون ظاهر امامنا وال application التانى هيكون مش قدامنا بس هيكون فى حالة Pause ، فلو احنا عايزين اى حاجه تتنفذ فى المرحلة ديه هنعمل override ل onPause method ونكتب الكود اللى عايزين ننفذه فيه .

5-   onStop  : فى ال cycle ديه هيكون ال application بتاعنا اختفي اتعمله Stop يعنى بس نقدر نعتبره انه موجود فى ال background فى الموبايل عشان كده نقدر نحتفظ بالحالة اللى كان عليها ال application فى ال onStop method .

6-   onRestart  : بتتم فى حالة ان ال application كان فى حالة ال Stop واحنا عايزين نشغله تانى فالبرنامج هيشغّل ال onRestart ثم ال onStart ثم ال onResume .
7-   onDestroy  : ال cycle ديه بتتم فى حالة اننا نغلق ال application خالص ولو هفتحة تانى هيبدأ من الاول خالص يعنى من اول ال onCreate.

اللى عايز يعرف اكتر عن ال Activity life cycle اللينك ده فيه شرح كويس جدا :

ثالثاً : Event Handling : هنشرح دلوقتى إزاى بنعمل Event handling

1-    Source : لازم يكون عندنا source هو اللى هنعمل عليه ال event وال source ده بيكون ال View اللى فى ال layout زى ال Button or Textview or any View

2-   Event  : وده ال Event نفسه اللى عايزينه يتم فى ال View زى Click or long Click

3-    handling: ده عبارة عن Call back method  يعنى method بتكون موجوده داخل interface واحنا بنعمل ليها override وبنكتب داخل هذه ال method الكود اللى احنا عايزينه يتنفذ .

رابعاً : مثال على ال Event handling :

-         عندنا TextView و Button عايزين لما نضغط على ال Button يطلع على ال TextView كلمة "Hello world"
الحل :

-         ال layout هيكون كده :




-         والكود اللى فى ال java class ممكن يتعمل بأكثر من طريقة واحنا نختار اى طريقة فيهم ونشتغل بيها :


-         الطريقة الاولى : هنعمل inner Class ونعمل implements interface فى ال class ديه لل interface اللى احنا عايزين نستخدمه ونكتب في ال class ديه  كل الكود الخاص بال Button وبعد كده ناخد منها object فى ال MainActivity ونستخدمها كما فى الشكل التالى :


1-    رقم 1 عملنا inner class وخليناها ت implements ل OnClickListener interface وده ال interface اللى بنحتاجه لما نكون عايزين ننفذ كود عند الضغط على view زى ال Button
وبعد كده هنلاقى خط احمر تحت myAction class هنقف عليه هنلاقى مكتوب add unimplemented method هنضغط عليها هتنزل ال method  اللى اسمها onClick هى ديه اللى هنكتب جواها الكود اللى احنا عايزينه ، فى حالة اننا عندنا اكتر من Button او اكتر من View عشان نفرّق بينهم نتأكد ان ال v اللى فى ال method بتساوى ال View اللى احنا عايزينه

2-    رقم 2 خدنا object from myAction class .

3-   رقم 3 هنربط ال Button بال method اللى اسمها onClick ، ازاى ؟؟ عن طريق ال method اللى اسمها setOnClickListrner ونكتب بين القوسين بتوع ال method المكان اللى موجود فيه ال onClick method اللى هو ال object اللى خدناه من myAction class ونعمل Run  ونضغط على ال Button هنلاقى طلع لينا فى ال TextView جملة "Hello World …" .

-         الطريقة الثانية : هنخلّى ال MainActivity هى اللى ت implements ال interface يعنى هنشيل ال inner class كما فى الشكل التالى :


-         هنلاقى فوق خالص ال Activity وهى بتعمل implements onClickLinstener interface .
-         وهنربط ال Button  بالكود زى ما قولنا قبل كده عن طريق ال SetOnClickListener method ونضع داخل القوسين المكان اللى فيه onClick method وفى الحالة ديه المكان موجود فى نفس ال Class عشان كده كتبنا كلمة this معناها يعنى this class
-         onClick method تحتوى على نفس الكود مثل الطريقة السابقة .


-         الطريقة الثالثة : Anonymous inner type
كما فى الشكل التالى :

-         فى هذه الطريقة من بنحتاج نعمل implements interface ، شُغلنا كله بيكون داخل ال setonClickListener method ، ازاى ؟؟ بنكتب داخل قوسين ال method كده new OnClickListener وبعد كده نعمل ctrl+space هتنزل لنا onClick method نكتب فيها الكود اللى احنا عايزينه ، وفى هذه الحالة مش هنحتاج نتأكد من ال v اللى فى ال method لأن ال method هتكون خاصة بال View اللى هى مكتوبة جواة .

هما دول الطرق الثلاث اللى ممكن نعمل بيهم اى Event handling لأى View
-         وبكده نكون خلصنا الدرس النهارده بس هقول جزء اخير فى الدرس وهو ازاى اعمل Run to application  على الموبايل :

-         لازم يكون عندنا التعريف الخاص بنوع الموبايل بتاعنا ولو مش عندنا نبحث عنه على الانترنت وبعد كده نعمل له setup  على الكمبيوتر
-         نضغط Right click على ال project هيظهر لينا الشكل ده


-         نختار Run as ثم Run Configurations ثم بعد كده هيظهر لينا الشكل ده 


















-         نختار Target من ال tabs فوق ثم نختار اول اختيار ونضغط على Apply وبعد كده هيظهر لينا الشكل ده













-         السطر اللى عليه مربع احمر ده الموبايل اللى احنا عرفناه على الكمبيوتر ، لو الموبايل ما ظهرش فى الشاشة ديه يبقى لسه ما اتعرّفش على الكمبيوتر ، وبعد كده نضغط ok هنشوف ال application بتاعنا على الموبايل .

-         Task  :  
ال layout عبارة عن ثلاثة   TextView و Button ، ال Button وظيفته ياخد الرقم اللى هيدخله ال user فى اول TextView وتانى TextView ويجمعهم ويضع مجموع الرقمين فى ثالث TextView .

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









No comments:

Post a Comment