بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا
محمد صل الله عليه وسلم
إن شاء الله النهاردة هنتكلم فى اكتر من موضوع فى الاندرويد نبدأ بسم الله
-
إزاى نعمل Run ل
android application ؟؟
-
شايفين ال icon اللى عليها مربع احمر ديه اسمها AVD يعنى android Virtual device manager ، هنضغط عليها هيظهر لينا الشاشة ديه
- هنضغط على New هيظهر لينا الشاشة ديه
- هنملى الخانات اللى فى
المتسطيلات الحمراء بالقيم اللى محتاجينها ثم نضغط oK
-
ثم نضغط
على ال AVD اللى عملناها وندوس على Start هيظهر لينا الشاشة ديه
-
ونضغط على Launch هيظهر لينا الشاشة ديه ويفتح برنامج كأنه
الموبايل اللى هيشتغل ال Application
عليه
وهيظهر شاشة كأنها
موبايل .
-
ازاى بقة
نشّغل ال Application على ال AVD ؟؟
نقف على ال
folder الخاص بال application بتاعنا اللى على الشمال ونضغط Right
Click
هيظهر لينا
الشكل ده
نضغط على Run As à Android Application هنلاقى البرنامج بتاعنا اشتغل على ال emulator..
-
وإن شاء
الله فى الدرس القادم هشرح ازاى نعمل Run لل application على الموبايل نفسه .
وبكده نكون عرفنا ازاى
نشوف ال Run بتاع ال application اللى بنشتغل فيه ، تعالوا دلوقتى ننتقل لشرح جزء آخر .
-
إزاى ممكن نقسم عرض الشاشة ؟ إلى نصفين زى بعض فى المساحه بالظبط زى كده
ال task
الخاصه بالدرس السابق كنا مفروض نقسم الشاشة إلى نصفين او مثلا إزاى نقسم الشاشة
إلى ثلاثة اقسام او اكتر على حسب احتياجنا بس كل قسم يساوى القسم الآخر ؟؟؟
-
اولاً : يوجد attribute فى اى View اسمة weight ، ولما نستخدم ال attribute اللى اسمه weight في تقسيم عرض الشاشة يبقى لازم ال width="0dp" ، يعنى لازم نخلى العرض بصفر
لان العرض هو كده كده هياخده من ال weight .
-
ثانياً : لو عندنا اثنين View وكل واحد
عملناله ال weight="1" يبقى مجموعهم 2 يبقى ده معناه ان عرض الشاشة هيتقسم لقسمين زى بعض ، ولو
عندنا 3 View وكل واحد عملناله ال weight="1" يبقى
مجموعهم 3 يبقى عرض الشاشة هيتقسم على 3 اجزاء .
-
ثالثاً : لازم ناخد بالنا من حاجه مهمه ان الشاشة
بتتقسم على حسب مجموع ال weight ، يعنى لو عندنا 2
View وواحد فيهم واخد ال weight="1" والتانى ال weight="2" يبقى كده
واحد فيهم هياخد ثلث الشاشة والتانى ثلثين الشاشة .
-
رابعاً : مش معنى ان الشاشة تتقسم يبقى كده الشاشة
كلها هى اللى هتتقسّم لا ، المقصود هنا ان عرض الParent بتاع الViews اللى واخده weight هو ده اللى هيتقسّم ، يعنى لو ال parent هو ال Layout الكبير linearlayout مثلا اللى
واخد الشاشة كلها يبقى فى الحالة ديه الشاشة كلها هتتقسّم ، لكن لو ال parent
هو layout واخد جزء من الشاشة يبقى الجزء
ده هو اللى هيتقسّم ، وده كلة احنا المتحكمين فيه بنشوف احنا عايزين نقسّم ايه
بالظبط ؟؟ وعلى اساس احتياجنا بنظبط الكود .
-
مثال :
إزاى
نقسّم عرض الشاشة إلى ثلاثة اقسام كما فى الشكل التالى :
-
الحل :
-
ملحوظة : ممكن نقسّم طول الشاشة ايضاً ؟؟ انا
مش هقول بتتعمل إزاى هسيبها تفكروا فيها بس هي برده هتتعمل بال Weight مع شوية
تعديلات اخرى عشان يطلعلنا الشكل ده فى النهاية :
-
هناخد دلوقتى جزء مهم جداً ، هو
ازاى نقدر نستخدم ال View من داخل ال java classes ؟؟ زي ما قولنا قبل كده احنا بنكتب id لل View اللى
هنستخدمها فى ال java classes
عشان نعرف ننادى عليها بأسمها وال id هو اللى بيعبر عن اسم ال view ، ازاى
بنعمل الموضوع ده ؟؟
مثال :
-
عندنا Textview واحنا عايزين نضع قيمة لل Textview من ال java class عشان تظهر هذه القيمة لما نعمل Run لل application هنعمل ازاى الموضوع ده ؟؟
الحل :
-
ده شكل ال layout اللى هنشتغل عليه وهنضعة داخل ال res à layout folders .
-
هنفتح الsrc folder ثم ال MainActivity.java او على حسب
ال java class
اللى احنا هنستخدمها وهنكتب الكلام ده :
1 -
رقم 1 هنا عرّفنا object
from TextView Class
ويُفضل ان احنا نعرّفها على مستوى ال Class مش داخل اى method عشان تبقى
كل ال Class
شايفاها لو عايزين نستخدمها فى اى مكان تانى فى ال Class نلاقى
الموضوع سهل .
2 -
onCreate method : لوخدنا
بالنا مكتوب قبلها override فاكرين ال inheritance اللى خدناه
فى ال java ، هنا طبقنا ال inheritance ، طب ازاى
؟؟ هنلاقى فوق جنب اسم ال class مكتوبextends Activity يبقى ال class ديه هتورث من class تانية اسمها
Activiy
و ال onCreate
ديه method
داخل ال Activity
واحنا هنا بنستخدمها وبنضع فيها الكود اللى احنا عايزينه ، onCreate بنكتب فيها
اى حاجه عايزينها تتنفذ بمجرد ما تتفتح الصفحة ديه .
3 -
ملحوظه :ال Activity تُمثل اى
صفحة بنشوفها فى ال application بتاعنا ، يعنى اى صفحة
عايزينها فى ال application
هنعمل ليها java class
ولازم تكون extends Activity وهنعمل ليها كما layout واخر حاجه
نضعها فى ال manifest file نقول للبرنامج ان ديه احنا
عايزينها Activity
واخر خطوة ديه هناخدها لاحقاً .
4 -
رقم 2 setContentView() وديه عبارة
عن method
لازم نكتبها فى ال onCreate ووظيفتها اننا بنربط ال Activity ديه ب layout معين يعنى
بنكتب داخل القوسين دول اسم ال layout اللى احنا عاملينه فى ال layout
folder
، معنى الكلام ده ان R.layout.activity_main بيجيب ال layout
نشرحها بالتفصيل
؟؟ R
ده ال java file
اللى موجود فى ال gen folder
وبيحتوى على كل ال id
الخاصة بأى حاجه موجوده فى ال application ،ثانى حاجه ال layout بنكتبها فى
حالة ان احنا عايزين layout
وال activity_main
ده اسم ال layout
اللى موجود فى ال layout folder اللى فى ال res
folder
، ده شرح السطر بالتفصيل .
5-
رقم 3 وهنا ال object اللى خدناه
من ال TextView
بنقولّه هو بيمثل ايه فى الlayout ، وهنشرح السطر الثالث بالتفصيل لأنه مهم جدا ؟؟
test=(TextView)
findViewById(R.id.tv_test)
-
(TextView) وهنا احنا كتبنا بين القوسين TextView لأننا هنا بنعمل Down
cast
اللى خدناه فى ال java ، لأن ال findViewById()
method
بترجع View
وعشان نحول من View
الى TextView
ده يُعتبر down cast
-
findViewById ديه method بترجعلنا اى
View
احنا عايزينه ، بس بتاخد مننا اسم ال View .
-
R.id.tv_test ال R زى ما قولنا فيها كل ال id بتاعت اى حاجه فى ال application وال id بنستخدمها فى حالة اننا عايزين نجيب ال id الخاص ب View ، وال tv_test ده اسم ال View نفسه .
-
يبقى السطر
اللى فات بنستخدمه فى حالة اننا بنعرّف اى View لكن بنغير نوع ال View على حسب هو Button or EditText او اى حاجه تانيه وبنغير ال down cast على حسب نوع ال View يعنى لو EditText او اى نوع تانى بنكتب نفس النوع داخل
القوسين .
6 -
رقم 4 فى
السطر ده بنضع قيمه داخل ال TextView عن طريق setText
method وبنكتب جواها ال Text اللى احنا عايزينه .
وديه بتكون نتيجة ال Run :
وبكدة نكون خلصنا درس النهارده يارب تكونوا استفدتوا منه
-
وده لينك حل task الدرس
السابق :
http://www.mediafire.com/download/xi74qd0bh5jxd0d/Task+Lesson+11.docx
http://www.mediafire.com/download/xi74qd0bh5jxd0d/Task+Lesson+11.docx
السلام عليكم ورحمة الله
وبركاته
No comments:
Post a Comment