سلسلة
تعليم برمجة تطبيقات الأندرويد
الدرس السادس
والعشرون
مرحبا بكم في درس جديد من دروس سلسلة
برمجة تطبيقات الأندرويد التعليمية، سنتابع في درسنا هذا ما كنا قد قمنا به في
الدرس السابق والذي نأمل أن تكونوا قد قمتم بتطبيقه والتدرب عليه لكي نتمكن بسهولة
من إنجاز التطبيق بشكل كامل، وكأني أسمع عبارة هيا بنا من الجميع، فهي بنا إذاً
...
كنا قد أنهينا مرحلة تصميم
الواجهات الرسومية في الدرس السابق واليوم سنبدأ بمرحلة التكويد وسنبدأ بالواجهة
الرئيسية كما المعتاد (الملف 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);
|
وهذا ما سنقوم به في الدروس
القادمة فانتظرونا.
ليست هناك تعليقات:
إرسال تعليق