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

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


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

سنتابع في سلسلتنا التعليمية لبرمجة تطبيقات الأندرويد وسنتعلم في درسنا اليوم كيف نقوم بالقراءة من الحقل والكتابة إليه عبر برنامج بسيط لإجراء عملية التكعيب فهل أنتم مستعدون؟! إن كانت الإجابة نعم فهي بنا ...

لنفتح برنامج أندرويد استديو ولننشأ تطبيق جديد نسميه MathExample كما في الصورة التالية:



ولنبدأ مباشرة بإضافة العناصر المناسبة إلى الواجهة activity_main.xml كما يلي:
·      عنصر علامة التسمية Label لكتابة عبارة الإدخال للمستخدم.
·      عنصر الحقل للقيمة المدخلة EditText.
·      عنصر الزر من أجل العملية الحسابية Button.
·      عنصر علامة التسمية Label من أجل النتيجة.
·      عنصر الحقل EditText من أجل إظهار النتيجة.

وكل ما سبق موضح في الصورة التالية:



ولا بد من التنويه إلى ما يلي:
1- العنصر Label من النوع Medium Text.
2- العنصر EditText من النوع Plain Text.

الآن وبعد أن أنشأنا الواجهة الرسومية لننتقل إلى الكود البرمجي ولنقم بتعريف عنصر الزر وإضافة الحدث له وفق التعليمتين التاليتين:
Button b=(Button)findViewById(R.id.button);
b.setOnClickListener(
this);

وكما تعلمنا في الدروس السابقة فإنه يتوجب علينا إضافة الطريقة onClick() لتظهر كما يلي:
@Override
public void onClick(View v) {
}

وكل ما نريد تنفيذه من الآن وصاعداً سنكتبه في الطريقة onClick() ولهذا الغرض سنعرف العناصر التي سنتعامل معها كما يلي:
EditText e1=(EditText)findViewById(R.id.editText);
EditText e2=(EditText)findViewById(R.id.
editText2);

ولاحظوا أننا لم نعرف سوى الحقول فقط لأن علامات التسمية دورها إظهار عبارات معينة للمستخدم وهذه العبارات لن تتغير في التنفيذ لذلك لسنا بحاجة إلى تعريف هذه العناصر برمجياً واكتفينا بتعريف الحقول فقط لأننا سنتعامل معها سوى للقراءة أو للكتابة، ولتحقيق المطلوب سنقسم التنفيذ إلى ثلاث مراحل:
1- مرحلة قراءة القيمة التي يدخلها المستخدم من حقل الإدخال (الحقل الأول).
2- مرحلة إجراء العملية الحسابية على القيمة المدخلة وحساب الناتج.
3- مرحلة إظهار النتيجة النهائية في الحقل المخصص للإظهار.

لنبدأ بالمرحلة الأولى:
نريد قراءة الرقم الذي يدخله المستخدم وتخزينه في متحول لذلك سنعرف متحول وليكن x من النوع int الذي يدل على العدد الصحيح وذلك كما يلي:
int x;

وهنا لدينا مشكلة بسيطة وهي على الشكل التالي:
القيمة المدخلة في الحقل سيعتبرها المترجم (Compiler) سلسة محرفية String وذلك بغض النظر عما سيدخله المستخدم ومعنى ذلك أنه حتى لو أدخل المستخدم عدداً صحيحاً فسيتم قراءته كسلسلة حرفية فما الحل إذاً؟!

الحل هو تحويل القيمة المدخلة إلى عدد صحيح عبر استخدام الطريقة parseInt() والتي يتم استدعاؤها مع الصف Integer كما يلي:
Integer.parseInt(value)

وبتطبيق ما سبق في الكود البرمجي الخاص بنا فإننا نكتب ما يلي:
x=Integer.parseInt(e1.getText().toString());

وما هو مكتوب ضمن القوسين يعبر عن قراءة القيمة المدخلة من الحقل وضمان أنها سلسة محرفية عبر الطريقتين getText() التي تقرأ القيمة من الحقل والطريقة toString() التي تضمن أن المدخل سلسة محرفية وبدونها سيعتبر المدخل من النوع EditText وبالتالي لا يمكننا التعامل معه.
ننتقل الآن إلى المرحلة الثانية عبر تعريف متحول للنتيجة وحساب مكعب العدد المدخل كما يلي:
int res;
res=x*x*x;

ولم يبقى أمامنا سوى إظهار النتيجة عبر التعليمة setText() التي سنستخدمها مع الحقل الثاني كما في الكود التالي:
e2.setText(res+"");

وحتماً أغلبكم سيتساءل عن سبب وجود علامتي التنصيص في الطريقة مع إشارة الزائد السبب بسيط جداً وهو أن الطريقة setText() لا تقبل سوى النوع String والمتحول res من النوع int لذلك استخدمناها كأسلوب للتحويل بينهما وبدونها سيظهر خطأ اثناء التنفيذ ولن يعطينا المترجم أي خطأ عند الكتابة (قبل التنفيذ) وهذا النوع من الأخطاء يسمى Run Time Error.

أتمنى أن تكونوا قد استفدتم من هذا الدرس ونلقاكم إن شاء الله في الدروس القادمة.