منتديات التطوير و الاشهار
سلسلة تعليم برمجة اندرويد - الدرس الرابع 15KrP
منتديات التطوير و الاشهار
سلسلة تعليم برمجة اندرويد - الدرس الرابع 15KrP
منتديات التطوير و الاشهار
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات التطوير و الاشهار

منتديات التطوير و الاشهار
 
الرئيسيةالرئيسية  البوابةالبوابة  أحدث الصورأحدث الصور  التسجيلالتسجيل  دخولدخول  

 

 سلسلة تعليم برمجة اندرويد - الدرس الرابع

اذهب الى الأسفل 
3 مشترك
كاتب الموضوعرسالة
المحارب
‎عضو ‎نشـيط
‎عضو ‎نشـيط
المحارب


عدد المساهمات : 415
نقاط نشاط : 797
السٌّمعَة : 0

سلسلة تعليم برمجة اندرويد - الدرس الرابع Empty
مُساهمةموضوع: سلسلة تعليم برمجة اندرويد - الدرس الرابع   سلسلة تعليم برمجة اندرويد - الدرس الرابع Emptyالجمعة أغسطس 09, 2013 8:28 pm

 في بداية الدرس الرابع أتمنى ان أكون وُفقت في شرح الدروس الثلاثة الماضية وقد وصلتني بالفعل ردود أفعال حمستني لإستكمال هذه السلسة عن برمجة اندرويد ، استكمالاً للحديث... بعد ان قمنا بعمل تصميم برنامح لعرب هاردوير الذي يُعرض فيه مختلف الخدمات مثل عن الموقع والفريق وغيره وقد قمنا بعمل شاشة عرض مختلفة ولكن لم يتم ربطها بالواجهة الرئيسية الى الآن ، سنقوم من خلال هذا الدرس بعرض كيفية اكمال هذا البرنامج وكتابة بعض الأكواد (في الحقيقة انا من عشاق كتابة الكود ولذالك انا متحمس لهذا الدرس! )
 
[rtl]دعوني ارجع الى آخر صورة تم استعراضها في الدرس الثالث وهي صورة توضيحية تبين كيفية ربط الشاشات ببعض[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع B_700_573_16777215_00___images_stories_series_android_3_20[/rtl]
[rtl]وقائمة الملفات الموجوده لدينا هي كالتالي :[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 1[/rtl]
[rtl]اذن قمنا بعمل شاشات عرض مختلفة ، ونريد ان تعمل كل واحده على حدى ، لو رجعنا الى الوراء قليلاً وخاصة الى الدرس الثاني كنا قد شرحنا انه من مكونات البرنامج لعمل شاشة عرض هو عمل Class من نوع Activity تذكرت ؟ وسنلاحظ ايضاً ان الملف الرئيسي والذي بالنسبة لي اسمه HelloWorldActivity.java من نوع Activity  ومخصص لشاشة البداية التي تظهر عند بداية عمل البرنامج ، ولذالك نحن الآن نريد عمل اربع شاشات أخرى لكل من aboutus.xml  و email.xml و services.xml و teamwork.xml وذالك عن طريق انشاء اربع ملف داخل المجلد src من نوع java ، بالضغط بالزر الأيمن على com.arabhardware او ما يماثلها لديكم وبعدها اختيار New ثم Class ستظهر الشاشة التالية:[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 2[/rtl]
[rtl]سنقوم مثلاً بعمل اول class لشاشة about us فسنقوم بكتابة اسم الـ class  وبعدها الضغط على Browse لاختيار نوع الـ class  والذي سيكون من نوع Activity وبعدها الضغط على موافق وانشاء الملف[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 3[/rtl]
[rtl]سيتم انشاء الملف وسيكون به فقط  هذا الكود :[/rtl]
package com.arabhardware;
import android.app.Activity;
public class aboutus extends Activity
{

}

[rtl]سنقوم  بعدها بعدها بعمل override  للـ function  الأساسية والتي تسمى onCreate  ليحل محلها الكود الذي سيجعل ملف aboutus.xml هو الملف الرئيسي ليعرض من خلال هذه الـ Activity ، سنقوم بكتابة oncreate  وبعدها الضغط على CTRL+Space  سنجد ان هنا قائمة كاملة بها جميع خيارات انشاء هذه الـ function سنقوم باختيار اول خيار[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 4[/rtl]
[rtl]بمجرد احتيارها سيظهر الكود بشكل تلقائي على هذا الشكل :[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 5[/rtl]
[rtl]ولو لاحظت فهو نفس الكود الموجود داخل الملف الرئيسي HelloWorldActivity.java ولكن ينقصه شئ واحد وهو السطر المسؤول عن اختيار شاشة العرض[/rtl]
[ltr][b style="margin: 0px; padding: 0px; border: 0px;"]setContentView(R.layout.services);[/b][/ltr]
[rtl]ولذالك سنرجع الى الملف الذي كنا قد انشأناه وداخل oncreate سنقوم بكتابة الكود وتوجيهه الى شاشة العرض about us لتكون بهذا الشكل[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 6:[/rtl]
[rtl]فقط كل ما علينا هو تكرار هذه الخطوة مع الشاشات الأخرى ليصبح عدد ملفات الـ .java هو نفس عدد ملفات XML Layout ، وبهذا قد نكون ربطنا ملفات التصميم بملف برمجي وستبقى بعض الأكواد الأخرى لنقوم بربط الأزرار للتنقل بين الشاشات المختلفة . لتصبح بهذا الشكل[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 7[/rtl]
[rtl]رائع... الآن نريد ان نقوم بربط الأزرار الموجودة في الشاشة الرئيسية لتحويلنا الى الشاشة المفترض الذهاب اليها ، من الآن سيكون التعامل مع ملفات الكود java الموجوده داخل src ، نريد في هذه الخطوة أن نقوم بتوجيه أول زر وهو About Arabhardware إلى الـ aboutus.java  ، سنذهب اذن الى الملف الرئيسي HelloWorldActivity.java ونقوم بتعريف الزر ليكون له ارتباط برمجي بالكود ... دعنا من كثرة الكلام ودعونا نبدأ بكتابة الكود...[/rtl]
[ltr]public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.services);

Button bt_about = findViewById(R.id.####)
}
[/ltr]
[rtl]قمت باضافة سطر يقوم بتعريف الزر حسب الـ ID  الخاص به ... هل تتذكر في الدرس السابق حينما ذكرت لك ان الـ ID  هو أمر هام جدا ويقوم البرنامج بوضع ID تلقائي....  في الحقيقة الأمر مرهق لمعرفة ما هو الـ ID  الخاص بزر About Arabhardware فكم من زر قمنا بوضعه في جميع الملفات...؟ الكثير...  وسيظهر لك بهذا الشكل حينما تحاول كتابة الكود[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 8[/rtl]
[rtl]ولذالك دعونا نرجع مره أخرى الى ملف الـ xml   ونختر الزر ونقوم بتغيير الـ ID  الخاص به وكذالك باقي الأزرار بهذه الطريقة :[/rtl]
[rtl]سلسلة تعليم برمجة اندرويد - الدرس الرابع 9[/rtl]
[rtl]وبعد نقوم بكتابة  الكود وسنجد الـ id  ظهر بكل سهولة ضمن القائمة[/rtl]
[ltr]public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
etContentView(R.layout.services);

Button bt_about = (Button) findViewById(R.id.m_about);
}
[/ltr]
[rtl]وبعدها سيطلب منك البرنامج عمل casting  بوضع (Button) ليجعلها من نفس النوع  ، الآن يمكننا التحكم في زر About Arabhardware كيفما نشاء بأي اضافة لكود أو غيره ، سنقوم بوضع event  على هذا الزر بأنه مجرد الضغط سيقوم بعمل حدث معين وهو onClick ليكون الكود على هذا الشكل (استخدم CTRL_Space ) سيسهل عليك كثيراً في تكملة الكود.[/rtl]
[ltr]import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.services);

Button bt_about = (Button) findViewById(R.id.m_about);
bt_about.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
// نقوم بوضع الكود المسؤل عن الذهاب الى شاشة أخرى هنا

}
});
}
}
[/ltr]
[rtl]وبعدها نقوم بعمل نداء لـ function  باسم StartActivity وتستقبل معيار من نوع Intent وبعدها نقوم بعمل New Intent ونختر ما يتم ارسال له الـ Context وهو المقصود به الـ Class  الذي يتم منه التحويل وهو في حالتنا HelloWorldActivity والمعيار الآخر الذي نقوم بارساله هو الـ Activity المطلوب تشغيله... دعنا نشاهد الكود ليكون اوضح:[/rtl]
[ltr]public void onClick(View v)
{
startActivity(new Intent(HelloWorldActivity.this, aboutus.class));
}
[/ltr]

  • HelloWorldActivity.this : هو اسم الـ Class ا لرئيسي الذي سيكون المصدر للتحول متبوعاً بكلمة this للإشاة الـ class  نفسه
  • aboutus.class : وهو اسم الـ  class  الذي من نوع Activity  ومطلوب عرض الشاشة الخاصه به


الآن أنت قد أتممت عملية ربط زر About Arabhardware بالشاشة الخاصه له... دعنا نقوم بالتجربة ... قم بالضغط على زر About Arabhardware .... هل ظهرت لك هذه الشاشة؟

سلسلة تعليم برمجة اندرويد - الدرس الرابع 10
[rtl]
لا تقلق لست وحدك... ليس بجديد في عالم البرمجة من الصعب ان يعمل البرنامج من أول مره!
[/rtl]
دعونا نتعرف على هذه المشكلة ، المشكلة في عملية نداء الشاشة الأخرى ... إذن المشكلة من الـ class  الآخر الذي من نوع Activity ... ولكن على حد علمنا الـclass  نفسه لا يوجد به مشكلة... فما المشكلة؟! نعم تذكرت... دعنا نراجع الملف الذي قلنا عنه في الدرس السابق انه يقوم بالتحكم في كل مكونات البرنامج AndroidManifest.xml حيث من المفترض ان تكون كل الـ Activities  معرفة فيه بشكل جيد ... اذن دعنا نلقي نظرة ... هذا هو الكود  :

سلسلة تعليم برمجة اندرويد - الدرس الرابع 11

نلاحظ ان محتوى الكود لا يحتوي سوى على Activity  واحده فقط ... وهي الـ Activity  الرئيسية ... إذن من هنا يجب تعلم أنه عند عمل أي class  من نوع  Activity  لا تنس في وضع التعريف الخاص به في هذا الملف يدوياً لأنه لا يتم بشكل تلقائي...فقط بشكل بسيط ستقوم بتعريف الـ activity  على هذا الشكل (لا تنسى وضع نقطة قبل اسم الـ class)  وبعدها قم بالتجربة.

سلسلة تعليم برمجة اندرويد - الدرس الرابع 12
[rtl][color]
رائع أليس كذالك! مبروك عليك أولى خطوات اعداد البرنامج... قم بعمل هذه الخطوة مع باقي الأزرار على شاشة الترحيب... بعد الإنتهاء منها أكمل قراءة الدرس.
سنقوم الآن من جديد للدخول على كل شاشة لضبط الإعدادات الداخليه لها وكتابة الكود الخاص بالأزرار او خلاف ذالك من مكونات كنا قد وضعناها
شاشة About Arabahrdware :
سنقوم بعمل ربط بين الكود والزر الخاص بـ Back to Home وبعدها نعطيه القيمة المسؤولة عن انهاء هذه الـ Activity  وهي عباره عن function باسم finish ، وفي الكود التالي قمت ايضاً بتعريف Intent  في حالة لديك الرغبة في ان ترسل اي شئ الى الشاشة السابقة فستساعدك على ذالك ويمكن تجاهلها تماماً وكتابة finish  فقط
[ltr]protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.aboutus);

Button back = (Button) findViewById(R.id.ab_back);
back.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
}
[/ltr]
وبهذا عند الضغط على زر Back to Home  سيرجع بك الى الشاشة السابقة
شاشة TeamWork  لا يوجد بها اي اضافات ولذالك سننتقل مباشرة الى شاشة Sections أو Services
شاشة Sections :
هذه الشاشة كنا قد وضعنا بها بعض الخيارات فعن الضغط على اي صورة سيقوم الـ Web View  بتحميل الصفحة اونلاين من على موقع عرب هاردوير وعرضها مباشرة ، في البداية هذه المره نريد عمل event عند الضغط على صورة وليس على زر كما كان بالسابق... ولكن دعني اقول لك ان الطرق مماثلة تماماً أنظر الى الكود الذي قمت بكتابته داخل ملف services :
[ltr]@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.services);

ImageView Im_forum = (ImageView) findViewById(R.id.im_forum);
Im_forum.setOnClickListener(new OnClickListener() {

public void onClick(View arg0)
{

}
});
}
[/ltr]
الآن بمجرد الضغط على اول صورة ولتكن صورة المنتدى سيقوم باتخاذ اجراء معين... لم نقم بتحديده بعد. ما نريد به هو عند الضغط على اصورة يظهر محتوى المنتدى من الرابط http://arabhardware.net/forum من خلال الـ WebView الذي قمنا بوضعها ، الأمر أبسط مما تتخيل
[ltr]
public void onClick(View arg0)
{
WebView wb = (WebView) findViewById(R.id.webView1);
wb.loadUrl("http://arabhardware.net/forum/");
}
[/ltr]
[/color][/rtl]
دعنا للتجربة الآن ، قم بستغشل البرنامج ... هي تعمل ولا تعمل... تعمل اننا بالفعل نجحنا في ان نرسل رابط للـ  WebView  ليقوم باستعراضه ولم تعمل لأن Web View فشل في استعراض الرابط ولكن هذه المره تبدو وكأنها مشكلة في اتصال الإنترنت رغم انني قمت بتجربة الـمتصفح الخاص بالمحاكي وهو يعمل بشكل طبيعي.

سلسلة تعليم برمجة اندرويد - الدرس الرابع 13

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

سلسلة تعليم برمجة اندرويد - الدرس الرابع 14

الأمر بسيط اليس كذالك ؟ لا عليك في حفظ هذه التصاريح فهناك صفحة يمكنك الإستعانه بها لتظر لك جميع التصاريح كاستخدام البلوتوث واستخدام قائمة العنواين وغيره والآن دعونا للتجربة الحية أمامنا :

سلسلة تعليم برمجة اندرويد - الدرس الرابع 15

رائع هي الآن تعمل بشكل جيد... دعونا من مشكل اللغة العربية مع بعض الإصدارات سنتحدث عنها لاحقاً ، والآن قم بتكرار العملية مع كل صورة بنفس الطريقة.

تبقى لدينا آخر شاشة وهي شاشة المراسلة سنقوم بشرحها من خلال الدرس الخامس ان شاء الله.
الرجوع الى أعلى الصفحة اذهب الى الأسفل
واحد
‎عضو ‎نشـيط
‎عضو ‎نشـيط
avatar


ذكر
عدد المساهمات : 4716
نقاط نشاط : 4757
السٌّمعَة : 2

سلسلة تعليم برمجة اندرويد - الدرس الرابع Empty
مُساهمةموضوع: _da3m_14   سلسلة تعليم برمجة اندرويد - الدرس الرابع Emptyالإثنين أغسطس 19, 2013 5:52 pm

موضوع رائع بوركت
سلسلة تعليم برمجة اندرويد - الدرس الرابع 4
سلسلة تعليم برمجة اندرويد - الدرس الرابع 128711691410
الرجوع الى أعلى الصفحة اذهب الى الأسفل
houdanada
‎عضو ‎نشـيط
‎عضو ‎نشـيط
houdanada


انثى
عدد المساهمات : 3997
نقاط نشاط : 4153
السٌّمعَة : 0
العمر : 28

سلسلة تعليم برمجة اندرويد - الدرس الرابع Empty
مُساهمةموضوع: رد: سلسلة تعليم برمجة اندرويد - الدرس الرابع   سلسلة تعليم برمجة اندرويد - الدرس الرابع Emptyالإثنين سبتمبر 30, 2013 12:36 am

تحياتي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
سلسلة تعليم برمجة اندرويد - الدرس الرابع
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات التطوير و الاشهار :: تعلـم لغات البرمجة :: تعلم Android-
انتقل الى: