pregnancy
الأذكار أعوذ بالله من الشيطان الرجيم { اللّهُ لاَ إِلَـهَ إِلاَّ هُوَ الْحَيُّ الْقَيُّومُ لاَ تَأْخُذُهُ سِنَةٌ وَلاَ نَوْمٌ لَّهُ مَا فِي السَّمَاوَاتِ وَمَا فِي الأَرْضِ مَن ذَا الَّذِي يَشْفَعُ عِنْدَهُ إِلاَّ بِإِذْنِهِ يَعْلَمُ مَا بَيْنَ أَيْدِيهِمْ وَمَا خَلْفَهُمْ وَلاَ يُحِيطُونَ بِشَيْءٍ مِّنْ عِلْمِهِ إِلاَّ بِمَا شَاء وَسِعَ كُرْسِيُّهُ السَّمَاوَاتِ وَالأَرْضَ وَلاَ يَؤُودُهُ حِفْظُهُمَا وَهُوَ الْعَلِيُّ الْعَظِيمُ } || بسم الله الرحمن الرحيم{ قُلْ هُوَ اللَّهُ أَحَدٌ*اللَّهُ الصَّمَدُ*لَمْ يَلِدْ وَلَمْ يُولَدْ * وَلَمْ يَكُن لَّهُ كُفُواً أَحَدٌ} بسم الله الرحمن الرحيم {قُلْ أَعُوذُ بِرَبِّ الْفَلَقِ * مِن شَرِّ مَا خَلَقَ *وَمِن شَرِّ غَاسِقٍ إِذَا وَقَبَ * وَمِن شَرِّ النَّفَّاثَاتِ فِي الْعُقَدِ * وَمِن شَرِّ حَاسِدٍ إِذَا حَسَدَ } || بسم الله الرحمن الرحيم{ قُلْ أَعُوذُ بِرَبِّ النَّاسِ * مَلِكِ النَّاسِ * إِلَهِ النَّاسِ *مِن شَرِّ الْوَسْوَاسِ الْخَنَّاسِ * الَّذِي يُوَسْوِسُ فِي صُدُورِ النَّاسِ * مِنَ الْجِنَّةِ وَالنَّاسِ } || "اللهم أنت ربي لا إله إلا أنت خَلَقتني وأنا عَبْدُك وأنا على عهدك ووعدك ما استطعت وأعوذ بك من شر ما صنعت أبوء لك بنعمتك على وأبوء بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت" || "اللهم عافني في بَدَني، اللهم عافني في سمعي، اللهم عافني في بصري، لا إله إلا أنت .اللهم إني أعوذ بك من الكفر، والفقر، اللهم إني أعوذ بك من عذاب القبر لا إله إلا أنت"  || "حسبي الله لا إله إلا هو عليه توكلت وهو رب العرش العظيم " || -"اللهم إني أسألك العافية في الدنيا والآخرة،اللهم إني أسألك العفو والعافية في ديني ودنياي وأهلي ومالي،اللهم استر عوراتي وآمن روعاتي، اللهم احفظني من بين يديَّ ومن خلفي وعن يميني وعن شمالي ومن فوقي وأعوذ بعظمتك أن أغتال من تحتي" || -"اللهم عَالِمَ الغيب والشَّهادة، فاطر السموات والأرض، رب كل شيء ومليكه، أشهد أن لا إله إلا أنت أعوذ بك من شر نفسي ومن شر الشيطان وشركه وأن اقترف على نفسي سوءًا أو أجُره إلى مسلم" || -" بسم الله الذي لا يضرُّ مع اسمه شيء في الأرض ولا في السماء وهو السميع العليم" || "رضيت بالله رباً ، وبالإسلام ديناً وبمحمد صلى الله عليه وسلم نبياً "  || "يا حي يا قيوم برحمتك أستغيث أصلح لي شأني كُله ولا تَكِلْني إلى نفيس طرفة عين" || "لا إله إلا الله وحده لا شريك له ،له الملك وله الحمد وهو على كل شيء قدير" || من قال :"سبحان الله وبحمده" مائة مرة حين يصبح وحين يمسي لم يأت أحد يوم القيامة بأفضل مما جاء به إلا أحد قال مثل ما قال أو زاد  || "سبحان الله وبحمده عدد خلقهِ ورِضَا نفسِهِ وزِنُة عَرشِهِ ومِداد كلماته" || "أستغفر الله وأتوب إليه "  || " اللهم صل وسلم على نبينا محمد "

سلسلة تعليم برمجة تطبيقات الأندرويد (الدرس العاشر)


سلسلة تعليم برمجة تطبيقات الأندرويد
الدرس العاشر

كنا قد توقفنا في الدرس السابق أعزاءنا عند مشكلة ظهرت لنا وتلخصت برسالة خطأ على الشكل التالي:
Unfortunately, MobileApp has Stopped

فما هو سبب ظهور هذه الرسالة؟! وماذا تعني؟! سنتعرف على إجابات هذه الأسئلة بعد قليل فاربطوا الأحزمة لننطلق ...
في الدروس الأولى من سلسلتنا التعليمية كنا قد تعرفنا على مكونات أي تطبيق من تطبيقات الأندرويد ومن هذه المكونات تحدثنا عن مكون رئيسي ومهم جداً وهو AndroidMainfest.xml وباستذكار بسيط لما مر نستطيع أن نقول بأنه المكان الذي يتم فيه تعريف كل الواجهات (ونقصد هنا Activities) الموجودة ضمن التطبيق وفيما يلي صورة للكود البرمجي الموجود ضمن هذا الملف:



ويمكنكم أن تلاحظوا أنه يوجد وسم يسمى application وهذا الوسم يمثل التطبيق وضمنه وسم يسمى activity وهذا الوسم يمثل الواجهة (ونقصد بوسم الكلمة الموجودة ضمن <> ولكل وسم مجموعة من الخواص التي تحدد صفة معينة أو تعطي هذا الوسم خاصية محددة (مثل label مثلاً التي تمثل اسم التطبيق) وفي هذا الملف كما قلنا منذ قليل لا بد من أن يكون هناك تعريف لكل الواجهات الموجودة في التطبيق فهل ملف Mainfest في تطبيقنا يستوفي هذه الشروط؟! لنعيد صياغة السؤال بطريقة أخرى، هل قمنا بإضافة الواجهة الجديدة التي قمنا بإنشائها وإضافتها إلى تطبيقنا (ونقصد هنا SecondAct)؟! والجواب ببساطة أننا لم نقم بذلك وبالتالي هناك خلل ما وهذا النقص الحاصل هو الذي سبب المشكلة التي ظهرت لنا وكما يقال "إذا عُرف السبب بطل العجب" والآن سنتجه لحل هذه المشكلة فكيف يتم ذلك؟! ببساطة ما علينا سوى إضافة الكود البرمجي التالي إلى ملف AndroidMainfest.xml كما يلي:

<activity
   
android:name=".SecondAct"
   
android:label="@string/app_name" >
</
activity>

وأول سؤال سيخطر ببالكم هو أين سنضع هذا الكود بالضبط؟! الجواب أنه يجب وضعه ضمن وسم application وبعد نهاية وسم activity الأول أي كما هو واضح في الشكل التالي:



فهي بنا لنقم بشرح بسيط للكود البرمجي السابق:
السطر الأول يعني أننا نعرف وسم جديد باسم activity وهي كلمة محجوزة (أي ليست اسم عشوائي وإنما يجب الالتزام به) ومن ثم تعريف خاصيتي رئيسيتين في هذا الوسم وهما كما يلي:
الخاصية name: وتعني اسم الواجهة البرمجية وهنا قد يحتار بعضكم ويتساءل عن أي واجهة القصد لا تقلقوا المقصود هو الواجهة البرمجية (أي ملف java الذي يمثل الكود البرمجي للواجهة وليس ملف xml الذي يمثل تصميم الواجهة) وهنا كتبنا SecondAct مسبوقاً بنقطة ولابد من التأكيد على حساسية حالة الأحرف يجب الالتزام بالحروف الكبيرة والصغيرة هنا وكتابة الاسم كما هو تماماً.

الخاصية label: وتمثل عنوان الواجهة وهنا لا داعي لأن نعدل أي شيء عن الواجهة السابقة فنترك قيمة هذه الخاصية كما هي في الواجهة السابقة.
بعد أن أنهينا كتابة الكود البرمجي علينا الضغط على زر الحفظ في الأعلى لحفظ التغييرات الجديدة التي قمنا بها كما توضح الصورة التالية:


ويبقى قبل تجريب التطبيق للتأكد من عمله أن ننوه لكم عن أن الواجهة الرئيسية في التطبيق أي التي ستعمل في البداية عند تشغيل التطبيق هي الواجهة التي تتمتع بالخاصية التالية:

<intent-filter>
    <
action android:name="android.intent.action.MAIN" />
    <
category android:name="android.intent.category.LAUNCHER" />
</
intent-filter>

والكود السابق يجب أن يكون موجود ضمن وسم الواجهة الرئيسية فقط أي يكتب لمرة واحدة فقط ولذلك لم نكتبه في الواجهة التي قمنا بإضافتها إلى ملف Mainfest.

لما يتبقى عليكم سوى تشغيل التطبيق ومعاينته للتأكد من أن كل شيء يعمل على ما يرام وذلك بظهور الواجهة الثانية عند الضغط على زر Start في الواجهة الأولى.

وهكذا نصل على نهاية درسنا الحالي ونلقاكم بكل محبة في الدرس القادم فانتظرونا ...