بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا محمد صل الله عليه وسلم
إن شاء الله النهاردة هنتكلم عن شئ مهم جدا فى برمجة الاندرويد ، يكاد لا يخلو اى تطبيق اندرويد منه وهو ال Intent
- Intent : يعنى ايه ؟؟ وبنستخدمه فى ايه ؟ ال intent ده هو الحاجة اللى بتخلينا ننتقل من activity للتانية ، من الاخر كدة اللى بتخلينا نتحرك من اى صفحة لأي صفحة تانية و ليه انواع ..
- Intent Types :
1- Explicit Intent : وظيفته يخلينا نتحرك من اى صفحة لاخري لكن بشرط كل ال activities اللى بنتحرك منها وإليها تكون داخل ال application بتاعنا .
2- Implicit Intent : وظيفته بيخلينا نتحرك من اى صفحة داخل ال application بتاعنا إلى application خارجي (واحد تانى مش بتاعنا يعنى )
- دلوقتى هنشرح اول نوع فى ال intent بالتفصيل .
n Explicit Intent : مبدئياً كدة اى حاجه عشان نفهمها صح لازم ناخد عليها مثال عملى
والمثال كالتالي :
- عندنا activity فيها EditText و Button
- بنكتب اي اسم فى ال EditText ثم نضغط على ال Button
- عند الضغط على ال Button يذهب البرنامج إلى Activity اخري داخل ال application طبعا لاننا شغالين على ال explicit intent ، ثم نجد فى الصفحة التانية مكتوب Hello + our name ""
- الحل :
1- نعمل new android application
2- نحدد من الأول كده فى ال application بتاعنا احنا محتاجين كام activity ، فى هذا المثال احنا محتاجين 2 واحدة منهم اول ما عملنا new application اتعملت اتوماتيك لوحدها والتانية احنا اللى هنعملها بنفسنا وديه فرصة كويسة نعرف ازاى نعمل Activity
How to Make Activity ؟
· نقف على ال Package اللى عليها مربع احمر
- ونعمل NewàClass Right Clickà
- ثم نكتب اسم ال Activity :
- اول ما ال Activity تفتح مش هيكون فيها الكلام اللى داخل المربع الأحمر ، احنا لازم نكتبه عشان نعرّف ال application ان ال Class اللى احنا عملناها عبارة عن Activiy
· نعمل layout لل Activity اللى احنا عملناها .. يعنى نعمل ليها ال interface بتاعها اللى من خلاله ال user هيتعامل مع ال Activity ديه
- نقف على ال layout folder
- ثم Right Click àNewàandroid XML file
- ثم نكتب اسم ال layout ثم finish بس ناخد بالنا ان اسم ال layout لازم يكون كله small letter ما ينفعش نكتب اى حرف Capital ولا ينفع نعمل space فيه
- ثم نعمل ال TextView اللى هنكتب فيه Hello + Our Name
· نربط بين ال Activity Class و ال layout ازاى ؟؟ عن طريق السطر اللي داخل المربع الأحمر
- اول ما نعمل ال Activity Class هنعمل Override ل onCreate method ، ازاي ؟ هنكتب onCreate ثم نضغط ctrl+space هيظهر لينا كذا حاجه نختار ال method اللى احنا عايزين نعمل ليها Override وطبعا زي ما قولنا قبل كده ان ال onCreate method ديه اول حاجه بتتنفذ لما ال Activity بتشتغل
- السطر اللى عليه مربع احمر ده بقه اللى بيربط بين ال java code ال xml file وداخل القوسين بتوع ال setContentview method بنضع ال layout اللى عملناه لل Activity ديه .
· اخر حاجه نعملها عشان نكون عملنا Activity هى اننا نعرّف ال Activity ديه داخل ال manifest file . إزاى ؟
- نفتح ال manifest file ده
- ثم نختار application من ال bar اللى تحت
- ثم ننزل فى الصفحة لحد الاخر لما نلاقي كلمة add اللى فى المربع الاحمر

- لما نعمل add هيتفتح لينا ال window اللى فوق وهنختار activity .. معني اللى احنا بنعملة ده اننا بنقول لل application اننا عايزين نعمل activity ونسجلها رسمي فى ال manifest file ثم نضغط ok .
- ثم نقف على ال activity اللى لسه عاملناها ونعمل اللى موجود فى الصورة بالترتيب
- اولاً هنضغط على Browse عشان نربط كلامنا اللى قولناه لل manifest file اننا عايزين نعمل Activity ب Activity Class نفسها
- هنلاقى ال window اللى فيها اسامي ال Classes اللى عندنا اتفتحت نختار ال Class اللى احنا عايزينها ثم ok .
- بعد كده هنلاقي الشكل ده عند كلمة Browse اللى كنا ضغطنا عليها
هنلاقي موجود ال Activity Class بتاعنا نعمل بعد كده ctrl+s عشان نحفظ الحاجات اللى عملناها لازم ما ننساش الخطوة ديه لأن من غيرها كأننا ما عملناش حاجه
وبكده نكون عملنا ال Activity بتاعتنا الموضوع سهل جدا خصوصاً بالممارسة انا بس اللى بقوله بالتفصيل الممل عشان مافيش حاجه تقع مننا لكن هو بسيط ومع الممارسة مش هنحس انه طويل خالص ...
3- نرجع تانى للمثال اللى كنا شغالين فيه ، دلوقتى هنظبط ال layout الخاص بال activity الاولي اللى فيها ال EditText و ال Button وهيكون شكله كالتالي :-
- فيه حاجة احب اوضحها ال option اللى اسمه layout_gravity اللى مكتوب فى ال EditText و ال Button نقدر من خلالة نحدد مكان ال tool بتاعتنا ، يعنى هنلاحظ انها فيها كلمة Center يعنى ال EditText احنا عايزينة يكون فى نص السطر اللى هو فيه ولو Right يبقى فى اليمين ولو Left يبقى فى الشمال .
4- نكتب الكود داخل ال Class الخاصة بال Activity الاولي اللى كانت موجودة اصلاً اول ما فتحنا البرنامج وهيكون بالشكل التالى :
- رقم 1 : بنعرّف ال EditText وال Button بس كده بيكونوا فاضين يعني لسه مش مربوطين باللي فى ال layout . نربطهم ازاي ؟ عن طريق رقم 2
- رقم 2 بنربط ال EditText اللى عرّفناه فى ال Class بال EditText اللى فى ال layout
وبنربط ال Button اللى عرّفناه فى ال Class بال Button اللى موجود فى ال layout
- رقم 3 : فى السطر ده بنجيب القيمة الموجودة داخل ال EditText وبنضعها داخل String ، ليه بنعمل كده عشان القيمة ديه هى اللي هنرسلها للصفحة التانية واللى اعتبرنا اننا هنكتبها اسم مثلا عشان فى الصفحة التانيه نلاقي hello + name .
- رقم 4 : هو ده الكود اللي بنكتبه لما نكون عايزين ننتقل إلى Activity تانية وهنشرحة بالتفصيل
· ال Intent ده class باخد منه object ومن خلالة اول حاجه بحددها ال Activity اللى احنا فيها اللى بتمثلها كلمة this ثم بنحدد ال Activity اللى احنا عايزين ننتقل إليها وفي هذا المثال بتكون ActivityTwo ولازم اكتب بعدها .class كده ظبطنا ال intent وقولناله انت فين ورايح على فين ، من الاخر عرَفناه سكته ، وطبعا احنا كاتبين الجزء ده فى حالة الضغط على ال Button لأن احنا عايزين ننتقل للصفحة الاخرى فى حالة الضغط على ال Button
· المرحلة اللى بعد كده ازاى هنرسل الاسم للصفحة التانية ؟؟؟ عن طريق حاجه فى ال Intent اسمها putExtra وديه عبارة عن method كل وظيفتها انها تبعت حاجات معاها وهى رايحة لل activity التانية وال method ديه بتاخد اتنين Parameters وهما عبارة عن ، اول واحد بيكون ال Key يعنى ايه ؟؟
اي حاجه عايزين نبعتها نعمل ليها key يعنى نديلها اسم والاسم ده وظيفته اننا لما نحب ناخد الحاجه المُرسلة في ال Activity التانية هناخدها عن طريق ال key ده ، زى كده ما كل واحد فينا ليه اسم عشان لما حد يحب يناديله يبقى ينادي عليه بأسمه هى ديه بالظبط فكرة ال key ، وتاني parameter عباره عن الحاجه نفسها اللى عايزين نبعتها وفى المثال ده بتكون ال name اللى خدناه من ال EditText .
· ازاى بنقول لل intent يلا روح للصفحة التانية ؟؟ عن طريق ال method اللى اسمها StartActivity() ديه ظيفتها تروح بال intent للصفحة التانية اللى بنكون حددناها مُسبقاً فى ال intent وداخل القوسين بنضع ال intent بتاعنا اللى احنا معرفينه مُسبقا .
- وبكده نكون انتهينا من هذا الجزء الخاص بإرسال intent من Activity ل Activity اخري
5- اخر نقطه فى هذا المثال إزاى نستقبل ال Intent فى الصفحة التانيه ؟؟؟
كما فى الشكل التالي :
- رقم 1 و 2 زى الشكل اللى فات بالظبط بنعرّف ال tool اللى محتاجينها ثم بنربطها باللى موجوده فى ال layout الخاص بال Activity ديه .
- رقم 3 : الشكل ده جديد علينا ايه ال Bundle ديه ؟ هى عبارة عن حزمة بنضع فيها كل ال Intent وال Extras المُرسلة من الصفحات الاخرى إلى هذه الصفحة ، ولما بعد كده نحب نستخدم اياً من ال data المُرسلة نجيبها من ال Bundle اللى حاطينا فيها كل حاجه ، بس فيه سؤال هو احنا ازاى حطينا كل حاجه فى ال Bundle ؟؟؟
- عن طريق getIntent().getExtras() وال methods ديه بتجيب كل ال intent ال Extras بتاعتهم .
- بعد كده استخدمنا ال key اللى كنا عاملناه فى الصفحة الاولي واحنا كنا عاملين اسمه "name" استخدمناه عشان نجيب قيمة ال Extra اللى كنا ارسلناها
، b.getString(key name)
b بيمثل ال Bundle بتاعنا و getString ديه method بترجعلنا قيمة ال Extra اللى ارسلناها بس لما نكتب بين القوسين اسم ال key الخاص بال Extra .
- بعد كده بقا عندنا قيمة ال Extra داخل ال String اللى اسمه name ، وضعنا قبلة كلمه Hello وحطيناهم داخل ال TextView .
- ونعمل Run هنشوف كل اللي شرحناه فوق بنفسنا .
- وبكده نكون انتهينا من هذا المثال وايضاً من درس النهارده وإن شاء الله نكمل الدرس القادم النوع التاني من ال Intent هو ال Implicit Intent
السلام عليكم ورحمة الله وبركاته
No comments:
Post a Comment