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

عاجل

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

السبت، 6 يوليو 2019

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


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

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

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

وبعدها سنضيف معالجة للحدث أي الضغط على الزر عبر إضافة الطريقة onClick() كما يلي:
@Override
public void onClick(View v) {

}

لنقم الآن بتعريف العناصر البرمجية التي سنحتاج إلى التعامل معها (وهنا لن نعرف عناصر علامات التسمية لأننا لسنا بحاجة إلى التعامل معها لأن قيمتها ثابتة) وذلك وفق الكود البرمجي التالي:
EditText e1=(EditText)findViewById(R.id.editText);
EditText e2=(EditText)findViewById(R.id.
editText2);
EditText e3=(EditText)findViewById(R.id.
editText3);
EditText e4=(EditText)findViewById(R.id.
editText4);

والآن سنعرف متغيرات من النوع String لتخزين القيم التي سيقوم المستخدم بإدخالها في الحقول وذلك وفق الكود البرمجي التالي:
String val1,val2,val3,val4;
val1=e1.getText().toString();
val2=e2.getText().toString();
val3=e3.getText().toString();
val4=e4.getText().toString();

وبعدها سنقوم بتنفيذ العملية الحسابية الوحيدة المطلوبة في تطبيقنا ألا وهي حساب القيمة الإجمالية للمشتريات والتي سنحصل عليها بضرب عدد المنتجات بسعر المنتج الإفرادي وذلك وفق الكود البرمجي التالي:
int total,singlerprice,itemcount;
singlerprice=Integer.parseInt(val3);
itemcount=Integer.parseInt(val4);
total=itemcount*singlerprice;

ولكي نبسط ما سبق نستطيع القول:
قمنا بتعريف ثلاث متحولات من النوع الصحيح وذلك لأننا سنتعامل مع أرقام والنوع String الذي يمثل السلاسل المحرفية لن يكون مناسباً هنا لذلك اخترنا النوع int ولهذا الغرض قمنا بتعريف ثلاث متحولات كما يلي:
1- المتغير singlerprice ويمثل القيمة التي سيدخلها المستخدم في حقل سعر المنتج.
2- المتغير itemcount ويمثل عدد المنتجات التي سيقوم المستخدم بشرائها والتي سيدخلها ايضاً في الحقل المناسب.
والقيمتين السابقتين لا بد من تخزينهما كأعداد صحيحة لذلك استخدمنا التابع parseInt() الذي يقوم بتحويل القيم إلى أعداد صحيحة (القيم التي تم قراءتها من الحقول عبر التابعين getText() والتابع toString()).
3- المتغير total ويمثل السعر الإجمالي والذي لابد من حسابه لأن المستخدم لن يقوم بإدخاله وهنا سنطبق عملية الضرب بين القيمتين السابقتين ونخزن الناتج في المتحول total.

بعد أن خزنا القيم وأجرينا العملية الحسابية تبقى أن نطبق عملية النقل للقيم بين الواجهة الأولى والواجهة الثانية وذلك عبر استخدام مفهوم Intent (الذي أسميناه الجسر) وذلك وفق الكود البرمجي التالي:
Intent n=new Intent(MainActivity.this.Second.class);

والآن وقبل ان نكتب تعليمة الانتقال الفعلية يتوجب علينا تعريف 4 متحولات اسمية (نختار أسماؤها كما نشاء) وفق التعليمات البرمجية التالية:
n.putExtra("Name", val1);
n.putExtra(
"Item", val2);
n.putExtra(
"Count", itemcount);
n.putExtra(
"Total", total);

إذاً قمنا بتعريف 4 متحولات اسمية على الشكل التالي:
1- Name ويمثل اسم المستخدم.
2- Item ويمثل اسم المنتج الذي قام بشرائه.
3- Count ويمثل عدد المنتجات التي قام المستخدم بشرائها.
4- Total ويمثل السعر الإجمالي للمنتجات.

وربطنا كل من هذه المتحولات الاسمية بقيمته المناسبة حيث أخذنا أول قيمتين من الحقول (القيمة val1 والقيمة val2) وأخذنا القيميتين الأخيرتين من المتغيرين itemcount الذي قمنا بتخزين القيمة المحولة من الحقل ضمنه وكذلك القيمة total التي تمثل ناتج العملية الحسابية التي قمنا بإجرائها لحساب السعر الإجمالي للمنتجات.

وهكذا نكون قد أنهينا الكود البرمجي الخاص بالواجهة الأولى ويتوجب علينا الآن إنشاء الكود البرمجي للواجهة الثانية والتي ستستقبل القيم المرسلة من الواجهة الأولى ولا ننسى إضافة التعليمة النهائية في نهاية كود الواجهة الأولى كما يلي:
startActivity(n);

وهذا ما سنقوم به في الدروس القادمة فانتظرونا.



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

إرسال تعليق