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

جديد

{ وَقُلْ رَبِّ زِدْنِي عِلْمًا }

السبت، 25 مايو 2019

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


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

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

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

String value;

value=e1.getText().toString();

  if(value.equals("")){

    Toast.makeText(getApplicationContext(), 
"Please put number into the field", Toast.LENGTH_LONG).show();

}

وبشرح مبسط للكود البرمجي السابق فقد قمنا بما يلي:
1- عرفنا متحول "متغير" جديد أسميناه value (نستطيع اختيار أي اسم نريد) وهو من النوع String لأننا سنخزن فيه سلسلة حرفية.
2- خزنا القيمة التي تمت قراءتها من الحقل في المتغير value عبر الطريقتين getText() وكذلك toString() وكنا قد تحدثنا عنهما في الدرس السابق.
3- أخبرنا المترجم أنه لدينا شرط عبر التعليمة if التي ستختبر عبر الطريقة equals() فيما إذا كانت قيمة value فارغة أم لا فإن كانت فراغاً أظهر للمستخدم عبارة مفادها:
" Please put number into the field " لتخبر المستخدم بوجوب إدخال قيمة ما ضمن الحقل (قيمة عددية).
وسنكمل الكود البرمجي كما يلي:
else {

    x = Integer.parseInt(e1.getText().toString());

    int res;

    res = x * x * x;

    e2.setText(res + "");

}

ويعالج الكود السابق حالة عدم تحقق الشرط عبر تنفيذ ما يجب القيام به في حال أدخل المستخدم قيمة وقد استخدمنا لذلك عبارة else وكنا قد تعلمناها سابقاً في الدروس الماضية.
لنجرب التطبيق الآن ولنقم بترك الحقل فارغاً وسنلاحظ النتيجة كما يلي:


أما الآن وبتكرار التجربة مع إدخال عدد ما سنلاحظ النتيجة كما يلي:




لننتقل الآن إلى الحركة الثانية التي نريد تعلمها وهي إلغاء تفعيل الحقل الخاص بالنتيجة فكما نلاحظ أنه يمكن للمستخدم أن يقوم بمسح النتيجة وكتابة النتيجة التي يريدها ونحن نريد منع حدوث ذلك عبر إلغاء تفعيل هذا الحقل لذلك سنضيف الكود البرمجي التالي:
e2.setEnabled(false);

التابع أو الطريقة setEnabled() تأخذ وسيط واحد فقط وهو من النوع المنطقي لذلك إما أن يكون true وهو الشكل القياسي (الافتراضي) وإما أن يكون false وهو يعني أننا نريد إلغاء تفعيل العنصر البرمجي الذي سنطبق هذه الطريقة عليه (حقل أو زر الخ ... ) وسنلاحظ بعد تنفيذ التطبيق النتيجة التالية:




إذاً الحقل غير مفعل ولا يستطيع المستخدم أن يضغط بداخله ليغير النتيجة كما يريد وبالتالي نكون قد حققنا المطلوب وكما قلنا فإن هذه الطريقة يمكن استخدامها مع أي عنصر برمجي أخر لتفعيله أو لإلغاء تفعيله.

بهذا نكون قد أنهينا درسنا لليوم نتمنى أن تتدربوا جيداً على ما نقوم به في الدروس لأنه بدون تدريب لن تصلوا إلى أي نتيجة، نلقاكم في دروس قادمة.


ليست هناك تعليقات:

إرسال تعليق