<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Ardroid &#124; أردرويد &#187; developers</title> <atom:link href="http://ardroid.com/tag/developers/feed/" rel="self" type="application/rss+xml" /><link>http://ardroid.com</link> <description>أندرويد للمستخدمين العرب</description> <lastBuildDate>Fri, 10 Feb 2012 17:25:29 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>آلاف الأيقونات المجانية للاستخدام في تصميم تطبيقات أندرويد (للمطورين)</title><link>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/</link> <comments>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/#comments</comments> <pubDate>Sat, 24 Sep 2011 12:16:46 +0000</pubDate> <dc:creator>أنس المعراوي</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Icons]]></category> <category><![CDATA[أيقونات]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=10052</guid> <description><![CDATA[سواء كنت مطوراً محترفاً أو مبتدئاً أو حتى ما زلت تخطط بعد للتطوير لمنصة الهواتف الذكية الأكثر انتشارً في العالم .. أندرويد, فلا بد أن أهم مافي التطبيق هو التصميم الجميل والجذاب الذي يعطي انطباعاً أولياً لدى المستخدم. مهما كان تطبيقك ممتازاً من الناحية البرمجية فسيفقد الكثير من بريقه لو لم يكن ذو واجهات جذابة.&#8230; <a
href="http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="295" height="295" src="http://ardroid.com/wp-content/uploads/2011/09/transdroid-banner21.png" class="attachment-large" alt="transdroid-banner21" title="transdroid-banner21" /><p>سواء كنت مطوراً محترفاً أو مبتدئاً أو حتى ما زلت تخطط بعد للتطوير لمنصة الهواتف الذكية الأكثر انتشارً في العالم .. أندرويد, فلا بد أن أهم مافي التطبيق هو التصميم الجميل والجذاب الذي يعطي انطباعاً أولياً لدى المستخدم. مهما كان تطبيقك ممتازاً من الناحية البرمجية فسيفقد الكثير من بريقه لو لم يكن ذو واجهات جذابة.</p><p>بالطبع ليس من المطلوب منك (وليس من المفترض) أن تكون مبرمجاً ومصمماً في نفس الوقت وهذه هي المشكلة. لكن إن لم تكن ترغب بالاستعانة بمصمم خارجي من أجل الواجهات وبشكل خاص الأيقونات, قام موقع <a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">thekseven.net</a> بعمل رائع وهو تصميم ما يقارب الـ 4000 أيقونة المصممة خصيصاً كي يتم استخدامها ضمن تطبيقات أندرويد, هذه الأيقونات مقسمة إلى 12 مجموعة وتلبي جميع الاحتياجات المطلوبة في التطبيق والأهم من ذلك فالمصمم يقدمها مجاناً بحيث تستطيع استخدامها سواء كان تطبيقك مجانياً أو تجارياً على حدٍ سواء!</p><p
style="text-align: right;"><a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones"><img
class="aligncenter size-large wp-image-10053" title="Selection_006" src="http://ardroid.com/wp-content/uploads/2011/09/Selection_006-600x414.png" alt="" width="600" height="414" /></a></p><p
style="text-align: right;">لو كنت مطوراً وكانت هذه الأيقونات مدفوعة لاشتريتها بلا تردد, لكنها متوفرة مجاناً للجميع كما اعتدنا دائماً على توفر الأمور الرائعة المجانية بالنسبة لكل من يعمل في التطوير لأنظمة التشغيل ولغات البرمجة مفتوحة المصدر. تستطيع تحميل الأيقونات <a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">من هنا</a>.</p><p
style="text-align: right;">[<a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">Tehkseven</a>] عبر [<a
href="http://www.androidpolice.com/2011/09/23/android-developers-this-guy-created-thousands-of-android-icons-you-can-use-in-your-apps-theyre-free-and-look-great/" target="_blank">Android Police</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/09/transdroid-banner21-200x200.png" /> </item> <item><title>مؤتمر موبايلي لمطوري تطبيقات الموبايل</title><link>http://ardroid.com/2011/05/14/mobily-devs-conference/</link> <comments>http://ardroid.com/2011/05/14/mobily-devs-conference/#comments</comments> <pubDate>Sat, 14 May 2011 21:29:48 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Conference]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Mobily]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[مؤتمر]]></category> <category><![CDATA[موبايلي]]></category><guid
isPermaLink="false">http://ardroid.com/?p=8757</guid> <description><![CDATA[في إطار سعيها الحثيث للإسهام في إنشاء مجمتع فاعل لمطوري تطبيقات الجوال، تنظم شركة موبايلي مؤتمرا لتطوير تطبيقات الموبايل على مختلف المنصات. يستهدف هذا المؤتمر جميع مطوري تطبيقات الموبايل والمهتمين بها بالإضافة لرواد الأعمال الذين يخططون لإنشاء شركات تهتم بتطبيقات الجوال. الدخول مجاني لجميع المطورين والمؤتمر يشكل فرصة رائعة للتعرف على أحدث التوجهات والمجالات في&#8230; <a
href="http://ardroid.com/2011/05/14/mobily-devs-conference/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="300" height="300" src="http://ardroid.com/wp-content/uploads/2011/05/lrg_mobily.gif" class="attachment-large" alt="lrg_mobily" title="lrg_mobily" /><p>في إطار سعيها الحثيث للإسهام في إنشاء مجمتع فاعل لمطوري تطبيقات الجوال، تنظم شركة <a
href="http://www.mobily.com.sa/portalu/wps/portal/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gDCxNHi1CPwBAng1BDr2BDY0NzAwjQ9_PIz03VL8h2VAQAszzhOg!!/dl3/d3/L0lDUmlTUSEhL3dHa0FKRnNBL1lCUmZ3QSEhL2Fy/">موبايلي</a> مؤتمرا لتطوير تطبيقات الموبايل على مختلف المنصات. يستهدف هذا المؤتمر جميع مطوري تطبيقات الموبايل والمهتمين بها بالإضافة لرواد الأعمال الذين يخططون لإنشاء شركات تهتم بتطبيقات الجوال.</p><p>الدخول مجاني لجميع المطورين والمؤتمر يشكل فرصة رائعة للتعرف على أحدث التوجهات والمجالات في تطوير تطبيقات الجوال. بالإضافة للتعرف إلى ما تتطلع إليه الشركات والتقنيات التي توظفها، والأهم، اللقاء بأبرز الأشخاص العاملين والمهتمين بعالم تطبيقات الجوال في المنطقة.</p><p>المؤتمر سيعقد في مدينة الرياض، يوم الاثنين القادم، ١٦ مايو ٢٠١١، فندق الفورسيزنز، برج المملكة، قاعة E,D، الجدول <a
href="http://www.mobily.com.sa/portalu/wps/portal/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gLUwsPd08TIwMLMyM3A8_QoBBXv6AwA_cQE6B8JJK8gaubqYGno6-rpaGfu7FFiDkB3X4e-bmp-gW5EeUAYYcr9w!!/dl3/d3/L0lDUmlTUSEhL3dHa0FKRnNBL1lCUmZ3QSEhL2Fy/">ومواضيع المحاضرات ومعلومات المتحدثين تجدونها في هذا الرابط</a>.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/05/14/mobily-devs-conference/feed/</wfw:commentRss> <slash:comments>14</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/05/lrg_mobily-200x200.gif" /> </item> <item><title>Unified Remote: فكره جديدة&#8230;للتحكم بحاسبك عن بعد .</title><link>http://ardroid.com/2010/08/07/unified-remote/</link> <comments>http://ardroid.com/2010/08/07/unified-remote/#comments</comments> <pubDate>Sat, 07 Aug 2010 18:13:32 +0000</pubDate> <dc:creator>أحمد راضي</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android 2.1]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Unified Remote]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[سوق أندرويد]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3604</guid> <description><![CDATA[Unified Remote هو عبارة عن برنامج متكامل للتحكم بجهاز الكمبيوتر عن طريق جهازك الأندرويد و بشكل متطور جداً. حيث يقدم لك 15 خياراً مختلفاً للتحكم مثل Explorer للتحكم بالملفات أو WMP للتحكم بالميديا بلير وأيضا غيرها الكثير &#8230;. كما في الصورة أدناه : ومن مميزات البرنامج الرائعة أيضا تحويل الهاتف إلى لوحة مفاتيح رائعة بخصائص&#8230; <a
href="http://ardroid.com/2010/08/07/unified-remote/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="100" height="100" src="http://ardroid.com/wp-content/uploads/2010/08/unifiedardroid.png" class="attachment-large" alt="إمسح للتحميل من أردرويد" title="unifiedardroid" /><div><p>Unified Remote هو عبارة عن برنامج متكامل للتحكم بجهاز الكمبيوتر عن طريق جهازك الأندرويد و بشكل متطور جداً. حيث يقدم لك 15 خياراً مختلفاً للتحكم مثل Explorer للتحكم بالملفات أو WMP للتحكم بالميديا بلير وأيضا غيرها الكثير &#8230;. كما في الصورة أدناه :</span></p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/08/Explorers.jpg" rel="lightbox[3604]"><img
class="size-medium wp-image-3607 aligncenter" src="http://ardroid.com/wp-content/uploads/2010/08/Explorers-200x300.jpg" alt="" width="200" height="300" /></a></p><p>ومن مميزات البرنامج الرائعة أيضا تحويل الهاتف إلى لوحة مفاتيح رائعة بخصائص الCaps Lock والNum الخاصة بالأرقام .وهو أيضا مفيد لمن يقدمون عروض البوربوينت بخصائص للمبتدئيين وللخبراء .</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/08/Keyboard2.png" rel="lightbox[3604]"><img
class="aligncenter size-medium wp-image-3614" src="http://ardroid.com/wp-content/uploads/2010/08/Keyboard2-300x201.png" alt="" width="300" height="201" /></a></p><p>للمزيد من المعلومات حول الخصائص : <a
href="http://www.unifiedremote.com/Features.aspx">http://www.unifiedremote.com/Features.aspx</a></p><p>للمعلومية البرنامج مجاني ولتستطيع إستخدامة إتبع الخطوات التالية :</p><ol><li> قم بتحميل البرنامج الخاص بالحاسب من<a
href="http://downloads.advantum-int.com/UnifiedRemote_v1_02_Setup.exe"> هنا </a> (الحجم 1.7)</li><li>قم بتحميل البرنامج من الماركت عن طريق مسح الكود التالي :</li></ol></div><div
id="attachment_3630" class="wp-caption aligncenter" style="width: 145px"><img
class="size-full wp-image-3630" title="unifiedremote" src="http://ardroid.com/wp-content/uploads/2010/08/unifiedremote.png" alt="" width="135" height="135" /><p
class="wp-caption-text">إمسح للتحميل من الماركت</p></div><p>أو قم بتحميل البرنامج كملف apk مباشرةً من موقعنا بالضغط على <a
href="http://ardroid.net/apps/UnifiedRemote.apk" target="_blank">هذه الوصلة</a> أو بمسح الكود التالي:</p><div
id="attachment_3631" class="wp-caption aligncenter" style="width: 110px"><img
class="size-full wp-image-3631" title="unifiedardroid" src="http://ardroid.com/wp-content/uploads/2010/08/unifiedardroid.png" alt="" width="100" height="100" /><p
class="wp-caption-text">إمسح للتحميل من أردرويد</p></div><p>3. قم بالمزامنة مع الحاسب عن طريق الWiFi , وأنطلق !!</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/08/07/unified-remote/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/08/Explorers-200x200.jpg" /> </item> <item><title>خلفية الألبومات الحية &#8212; أر العالم كم تحب الموسيقى</title><link>http://ardroid.com/2010/07/15/album-art-live-wallpaper/</link> <comments>http://ardroid.com/2010/07/15/album-art-live-wallpaper/#comments</comments> <pubDate>Thu, 15 Jul 2010 13:53:11 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android 2.1]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Froyo]]></category> <category><![CDATA[wallpaper]]></category> <category><![CDATA[xda-developers]]></category> <category><![CDATA[ألبومات]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[خلفية]]></category> <category><![CDATA[خلفية حية]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[موسيقى]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3169</guid> <description><![CDATA[مرة أخرى, قام مبرمجوا الأندرويد في AndroidGamer بعمل خلفية حية جديدة و رائعة تظهر جنون عشاق الموسيقى, قد تتذكر خلفية الخرائط الحية المتقدمة و كم أحببناها, و كذلك اذا كنت تحب الموسيقى فستروق لك هذه الخلفية الجديدة المسماة Album art live wallpaper, كل ما تقوم به هو إحضار جميع صور الألبومات من مكتبتك الموسيقية و&#8230; <a
href="http://ardroid.com/2010/07/15/album-art-live-wallpaper/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="230" height="230" src="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart.png" class="attachment-large" alt="النسخة التجريبية" title="DEMO-QRchart" /><p>مرة أخرى, قام مبرمجوا الأندرويد في <a
href="http://www.pocketgamer.org/">AndroidGamer</a> بعمل خلفية حية جديدة و رائعة تظهر جنون عشاق الموسيقى, قد تتذكر <a
href="http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/">خلفية الخرائط الحية المتقدمة</a> و كم أحببناها, و كذلك اذا كنت تحب الموسيقى فستروق لك هذه الخلفية الجديدة المسماة Album art live wallpaper, كل ما تقوم به هو إحضار جميع صور الألبومات من مكتبتك الموسيقية و جمعها لتصبح خلفية لجهازك. و بحسب المطورين فمن ميزات الخلفية:</p><ul><li>حجم صور الألبومات قابل للتغيير</li><li>ترتيب عشوائي</li><li>تحديث تلقائي</li><li>حافظ للبطارية</li><li>تأثيرات حركة سلسة</li><li>دعم لبرنامج LauncherPro</li></ul><p>يمكنك الحصول على الخلفية من <a
href="http://ardroid.com/tag/%d8%b3%d9%88%d9%82-%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af/">متجر الأندرويد</a> مقابل 99 سنتاً أو تحميل إصدار التجربة <em>demo</em> المجاني! <em>(الخلفيات الحية متوافقة فقط مع <a
href="http://ardroid.com/tag/android-2-1/">أندرويد 2.1</a>+)</em></p><p>و كالكثير من تلك التطبيقات الرائعة, الأشخاص وراء هذه الخلفية هم <a
href="http://ardroid.com/tag/xda-developers/">xda-developers</a> و يمكنك التحقق من مقالتهم الأصلية <a
href="http://forum.xda-developers.com/showthread.php?p=7158554">من هنا</a>. هاهي بعض الصور و الروابط.</p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/07/device-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3171" src="http://ardroid.com/wp-content/uploads/2010/07/device-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device2-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3174" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device2-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device3-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3175" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device3-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device4-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3176" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device4-small.png" alt="" /></a></div><div
id="attachment_3177" class="wp-caption aligncenter" style="width: 160px"><a
href="http://ardroid.com/wp-content/uploads/2010/07/Full-QRchart.png" rel="lightbox[3169]"><img
class="size-thumbnail wp-image-3177" src="http://ardroid.com/wp-content/uploads/2010/07/Full-QRchart-150x150.png" alt="" width="150" height="150" /></a><p
class="wp-caption-text">النسخة الكاملة</p></div><div
id="attachment_3178" class="wp-caption aligncenter" style="width: 160px"><a
href="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart.png" rel="lightbox[3169]"><img
class="size-thumbnail wp-image-3178" src="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart-150x150.png" alt="" width="150" height="150" /></a><p
class="wp-caption-text">النسخة التجريبية</p></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/15/album-art-live-wallpaper/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/device-small-200x200.png" /> </item> <item><title>مخترع تطبيقات الأندرويد App Inventor</title><link>http://ardroid.com/2010/07/12/app-inventor-for-android/</link> <comments>http://ardroid.com/2010/07/12/app-inventor-for-android/#comments</comments> <pubDate>Mon, 12 Jul 2010 16:07:41 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[app]]></category> <category><![CDATA[app inventor]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[inventor]]></category> <category><![CDATA[أداة مرئية]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[تطوير]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3148</guid> <description><![CDATA[تناقلت المواقع التقنية الإخبارية اليوم خبر صدور App Inventor for Android وهو ببساطة بيئة برمجية مرئية عبر الويب تمكن مستخدمي الأندرويد (من المبرمجين وغير المبرمجين) من عمل تطبيقات أندرويد.  ما تعنيه كلمة بيئة مرئية هو احتوائها على عناصر وأشكال مرئية لكل منها وظيفة معينة يتم تعديلها وربطها ببعضها البعض بالشكل الذي يرغب المستخدم أن يظهر&#8230; <a
href="http://ardroid.com/2010/07/12/app-inventor-for-android/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="199" height="199" src="http://ardroid.com/wp-content/uploads/2010/07/inventro.png" class="attachment-large" alt="inventro" title="inventro" /><p>تناقلت المواقع التقنية الإخبارية اليوم خبر صدور <a
href="http://appinventor.googlelabs.com/about/">App Inventor for Android</a> وهو ببساطة بيئة برمجية مرئية عبر الويب تمكن مستخدمي الأندرويد (من المبرمجين وغير المبرمجين) من عمل تطبيقات أندرويد.  ما تعنيه كلمة بيئة مرئية هو احتوائها على عناصر وأشكال مرئية لكل منها وظيفة معينة يتم تعديلها وربطها ببعضها البعض بالشكل الذي يرغب المستخدم أن يظهر التطبيق عليه (مشابهة للبيئة المستخدمة في برنامج <a
href="http://en.wikipedia.org/wiki/LabVIEW">LabView</a> ولعشاق الليجو <a
href="http://mindstorms.lego.com/en-us/Default.aspx">NXT</a>). لا حاجة لرؤية الأكواد ولا التدخل بكتابتها.</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/07/HelloPurrTwoBlocks.png" rel="lightbox[3148]"><img
class="aligncenter size-medium wp-image-3152" src="http://ardroid.com/wp-content/uploads/2010/07/HelloPurrTwoBlocks-300x141.png" alt="http://appinventor.googlelabs.com/learn/tutorials/hellopurr/hellopurr-part1.html" width="300" height="141" /></a></p><p>تتضمن <a
href="http://appinventor.googlelabs.com/learn/reference/components/index.html">العناصر</a> ما يلي:</p><ul><li>العناصر الأساسية (الأزرار، مربعات الاختيار، الصور، حقول نصية،&#8230;)</li><li>عناصر الوسائط المتعددة (الصور، عرض الفيديو، مشغل الصوت،&#8230;)</li><li>عناصر الرسوم المتحركة (كرة، شبح <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li><li>عناصر اجتماعية (مربع اختيار المتصل، اختيار البريد الالكتروني، مربع الاتصال، ارسال رسالة قصيرة، التواصل عبر تويتر، &#8230;)</li><li>عناصر خاصة بالحساسات Sensors (حساس تسارع ميل الجهاز Accelerometer، تحديد المكان GPS، تحديد وضع الجهاز (أفقي | عمودي))</li><li>عناصر ترتيب ما يظهر على الشاشة (ترتيب العناصر التي تظهر على شاشة التطبيق أفقيا أو عموديا أو على شكل جدول)</li><li>عناصر أخرى (قاريء الباركود، محول النص الى صوت، التنبيهات، التعرف الى الصوت speech recognition،&#8230;)</li></ul><p>بالإضافة الى العناصر، هناك القطع البرمجية أو ال Blocks والتي تشكل الدوال methods/functions وما تتضمنه من منطق logic كما تتعامل مع البيانات المستخدمة في التطبيق ويتم ربطها بالعناصر المذكورة في الأعلى. <a
href="http://appinventor.googlelabs.com/learn/reference/blocks/index.html">القطع</a> تتضمن:</p><ul><li>قطع التعريف (تعريف الدوال ومدخلاتها ووظيفتها)</li><li>قطع النصوص (التعامل مع النصوص: تعريف النص، تجزيء النص، هل يحتوي النص على؟، هل يبدأ بحرف ..؟،&#8230;)</li><li>قطع القوائم (التعامل مع القوائم: إنشاء قائمة، استبدال عنصر في القائمة، البحث عن عنصر،&#8230;)</li><li>قطع الرياضيات (جميع العمليات الرياضية على المدخلات: العمليات الحسابية، المنطقية، الدوال الرياضية،&#8230;)</li><li>قطع المنطق (true, false, and, or,&#8230;.)</li><li>قطع التحكم (if, ifelse, for, while,&#8230;)</li><li>قطع الألوان (التعامل مع الألوان)</li></ul><p>App Inventor هو أداة ممتازة جدا وتحرك ذكي من غوغل. ففي <a
href="http://techcrunch.com/2010/07/11/google-app-inventor/">مقالة نشرها موقع TechCrunch</a>، شرح الكاتب وجهة نظره المتعلقة بقوة هذه الأداة في خلق جيل من المطورين الجدد لتطبيقات الأندرويد. فالبداية لهؤلاء المطورين ستكون عبر أداة  App Inventor (ونلاحظ أن الأداة في متناول جميع الفئات العمرية) التي بطبيعة الحال ستمكن المستخدمين من الوصول الى حدود معينة (حالها حال أية أداة برمجية من هذا النوع) تدفعهم فيما بعد لدخول عالم البرمجة الفعلي وكتابة الأكواد والذي سيعطيهم تحكما أكبر في صنع التطبيقات. عطفا على هذه النقطة، أتوقع شخصيا أن تقوم غوغل بعمل مسابقات بين المدارس لأفضل تطبيق باستخدام هذه الأداة، على غرار مسابقات <a
href="http://en.wikipedia.org/wiki/RoboCup_Junior">Lego Robocup</a> وهذا تحديدا من شأنه تشكيل الجيل الجديد من المبرمجين.</p><p>في الختام، أتوقع بأن تسهم هذه الأداة في عمل تطبيقات أكثر أمنا وفاعلية من تلك المنتشرة في سوق الأندرويد والتي تزعجنا في بعض الأحيان لكونها مليئة بالأخطاء البرمجية، حيث أن هذه الأداة ستجعل من عملية تصليح لأخطاء debugging أسهل.</p><p>أترككم مع المقطع الذي يشرح سهولة عمل التطبيقات وكيفية تنصيبها على الجهاز مباشرة:</p><p><a
href="http://ardroid.com/2010/07/12/app-inventor-for-android/"><em>Click here to view the embedded video.</em></a></p><p><strong><span
style="text-decoration: underline">تحديث ١:</span></strong></p><p>أطلعنا <a
href="http://barcadroid.com/">BarcaDroid</a> أحد أصدقاء موقعنا الدائمين على بعض العيوب التي وجدها في هذه الأداة (وهو ما كنا قد أشرنا اليه بوجود محدودية في هذا النوع من الأدوات البرمجية، الا أن صديقنا أورد عددا منها بالتفصيل) وهي:</p><p>١- الكود الذي تنتجه الأداة ليس مثاليا optimized (أي احتوائه على أكواد زائدة يمكن الاستغناء عنها، وهذا موضوع حساس في عالم تطبيقات الأجهزة الذكية والنقالة)</p><p>٢- لا يمكنك الإطلاع على كود التطبيق بعد الانتهاء منه، ولا يمكنك التعديل عليه باستخدام الحزمة البرمجية SDK.</p><p>٣- التطبيقات التي تنتجها الأداة أكبر حجما من تلك التي تؤدي نفس الغرض والمطورة يدويا على مستوى الكود.</p><p>٤- عدد الدوال المتوفرة في الأداة أقل بكثير من عددها في ال SDK.</p><p>٥- لا يمكنك عمل widgets للتطبيقات (الwidgets هي النماذج المصغرة من التطبيق والتي يمكنك وضعها على الشاشة الرئيسية للتحكم بالتطبيق عبرها).</p><p>٦- حاليا، لا يمكن رفع التطبيقات المطورة بهذه الأداة على سوق الأندرويد! ولم تعلن غوغل حتى الآن عما اذا كانت ستفعل هذه الخاصية.</p><p>٧- ال app inventor لا يدعم الاتصال ورفع التطبيقات المطورة على جميع أجهزة الأندرويد (أي أنه عليك التأكد من دعم هذه الأداة لجهازك حتى تتمكن من تطوير ورفع التطبيقات عليه عبر سلك اليو اس بي).</p><p>٨- لا توجد خاصية تطوير التطبيق باستخدام هذه الأداة دون وجود اتصال فعال بالانترنت (ال app inventor يعمل على غيمة غوغل الحوسبية)، وهذا يعيق من كان سفرهم كثيرا.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/12/app-inventor-for-android/feed/</wfw:commentRss> <slash:comments>23</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/inventro.png" /> </item> <item><title>برنامج Mod Install Location طريقة جديدة لحفظ التطبيقات على بطاقة الذاكرة الخارجية SD.</title><link>http://ardroid.com/2010/07/12/program-mod-install-location-new-way-to-save-the-applications-on-memory-sd/</link> <comments>http://ardroid.com/2010/07/12/program-mod-install-location-new-way-to-save-the-applications-on-memory-sd/#comments</comments> <pubDate>Mon, 12 Jul 2010 13:12:03 +0000</pubDate> <dc:creator>أحمد راضي</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android 2.2]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Froyo]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Mod Install Location]]></category> <category><![CDATA[Nexus One]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[غوغل]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3133</guid> <description><![CDATA[أندرويد 2.2 حمل بين طياته ميزة طال إنتظارها ! وهي ميزة حفظ التطبيقات على بطاقة الذاكرة الخارجية SD Card وقد كانت هذه الميزة هي أكثر الميزات طلباً من قِبل مستخدمي أندرويد, فلقد عانى الكثير من المستخدمين من عدم وجود هذه الميزة وذلك لصغر المساحة الداخلية للعديد من الهواتف وكثرة عدد تطبيقات أندرويد. مما دفع غوغل لإضافتها&#8230; <a
href="http://ardroid.com/2010/07/12/program-mod-install-location-new-way-to-save-the-applications-on-memory-sd/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="360" height="600" src="http://ardroid.com/wp-content/uploads/2010/07/mod_install_location.png" class="attachment-large" alt="mod_install_location" title="mod_install_location" /><p><a
href="http://ardroid.com/tag/android-2-2" target="_blank">أندرويد 2.2</a> حمل بين طياته ميزة طال إنتظارها ! وهي ميزة حفظ التطبيقات على بطاقة الذاكرة الخارجية SD Card وقد كانت هذه الميزة هي أكثر الميزات طلباً من قِبل مستخدمي أندرويد, فلقد عانى الكثير من المستخدمين من عدم وجود هذه الميزة وذلك لصغر المساحة الداخلية للعديد من الهواتف وكثرة عدد تطبيقات أندرويد. مما دفع غوغل لإضافتها هذه الميزة للأندرويد 2.2 . بالتأكيد كان هناك طرق لفعل هذا من قبل لكنها كانت طرقاً معقدة نوعاً ما ولم يكن المستخدم العادي ليستطيع عملها كالحصول على صلاحيات الرووت وتغيير الروم وغيرها &#8230; . ولكن  ما زال هناك نقص فغوغل لم تحل المشكلة بشكل كامل ! فحتى تستطيع نقل تطبيقاتك إلى الذاكرة الخارجية SD يجب أن تكون التطبيقات أساساً تدعم  هذه الميزة! أي يجب أن يكون التطبيق جاهزاً لدعم هذه الميزة من قِبَل المطور الذي قام بتطوير البرنامج. فحتى لو كان لديك أندرويد 2.2 فهذا لا يضمن أن تعمل هذه الميزة مع جميع التطبيقات.</p><p>لكن الآن مع تطبيق Mod Install Location أصبحت الأمور أسهل . وقد أستوحيت فكره هذا البرنامج من الروم RoDrIgUeZsTyLe الخاص بهاتف <a
href="http://ardroid.com/tag/nexus-one" target="_blank">نيكسوس وَن.</a></p><p>تستطيع الآن نقل تطبيقاتك إلى الذاكره الداخلية بخطوات سهله جدا عن طريق الدخول إلى  Settings &gt; <span
style="color: #000000;">applications</span> &gt; Manage applications, ومن هناك تستطيع نقل أي برنامج لديك إلى الذاكرة الخارجية بسهولة بالغة. مع العلم أن البرنامج يتطلب الحصول على صلاحيات الرووت دون إجراء أية تعديلات أو عمليات أخرى كما كان الوضع في السابق.</p><p><img
class="aligncenter size-medium wp-image-3138" src="http://ardroid.com/wp-content/uploads/2010/07/mod_install_location-180x300.png" alt="" width="180" height="300" /></p><p
style="text-align: center;"><p>للذهاب مباشره إلى البرنامج في <a
href="http://ardroid.com/tag/سوق-أندرويد" target="_blank">الماركت</a> قم بمسح هذا الكود :</p><p><img
class="aligncenter" src="http://chart.apis.google.com/chart?cht=qr&amp;chs=100x100&amp;chl=http://cyrket.com/qr/114539" alt="" width="100" height="100" /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/12/program-mod-install-location-new-way-to-save-the-applications-on-memory-sd/feed/</wfw:commentRss> <slash:comments>40</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/05/Micro-Sd-by-Kaeru.my_.jpg" /> </item> <item><title>خلفية الخرائط الحية المتقدمة &#8211; نحن نحب أندرويد</title><link>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/</link> <comments>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/#comments</comments> <pubDate>Mon, 14 Jun 2010 14:13:41 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google Maps]]></category> <category><![CDATA[GPS]]></category> <category><![CDATA[map]]></category> <category><![CDATA[wallpaper]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[خرائط غوغل]]></category> <category><![CDATA[خلفية]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[غوغل]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=2505</guid> <description><![CDATA[هل تذكر ميزة خلفية الخرائط الحية من خرائط غوغل 4.1؟ لا بد أنك احببتها مثل الكثير من الناس. أما الآن فستحبها أكثر بعد أن قام المطورون في AndroidGamer بما يجيدون فعله و لم يعطونا بعض الخيارات و امكانية استخدام كل أنواع الخرائط فقط, بل انطلقوا لأبعد من هذا ببرنامجهم الجديد و المتميزAdvanced Map Live Wallpaper.&#8230; <a
href="http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="360" height="600" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home.png" class="attachment-large" alt="Maps-home" title="Maps-home" /><p>هل تذكر ميزة <a
title="تحديث خرائط غوغل إلى 4.1 يقدم مزايا جديدة" href="http://ardroid.com/2010/03/19/google-maps-update-to-4-1/">خلفية الخرائط الحية من خرائط غوغل 4.1</a>؟ لا بد أنك احببتها مثل الكثير من الناس. أما الآن فستحبها أكثر بعد أن قام المطورون في <a
href="http://www.pocketgamer.org/os-map">AndroidGamer</a> بما يجيدون فعله و لم يعطونا بعض الخيارات و امكانية استخدام كل أنواع الخرائط فقط, بل انطلقوا لأبعد من هذا ببرنامجهم الجديد و المتميزAdvanced Map Live Wallpaper.</p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/06/Maps-home.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2529" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/Lock-Maps.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2516" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Lock-Maps-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/Maps-home2.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2526" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home2-180x300.png" alt="" width="180" height="300" /></a></div><p><span
id="more-2505"></span></p><p>الميزات الجديدة في هذا التطبيق و الغير موجودة في نسخة غوغل رائعة و ستعجبك:</p><ul><li>خيارات متعددة للخرائط, مثل غوغل, Bing, Ordnance survey, USA VFR, IR charts و openstreetmap.</li><li>لا يستهلك البطارية بشكل كبير, حيث يغلق نفسه عند اخفاء الخليفة.</li><li>يوفر عليك من تكلفة الاتصال بميزة التخزين المؤقت Caching, حيث لا تطر لتحميل ملفات الخرائط سوى مرة واحدة.</li><li>يمكنك تغيير درجة التكبير على جميع الخرائط.</li><li>يحدد لك مكانك, و يضع دائرة حوله لتتمكن من معرفة أين أنت, و يمكن ايقاف هذه الميزة.</li></ul><p><em>(ملاحظة: هذه الخلفية لا تعمل إلا على <a
title="Android 2.1" href="http://ardroid.com/tag/android-2-1/">Android 2.1</a> أو النسخ الأحدث, و هي لا تزال في المرحلة التجريبية)</em></p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW1.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2508" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW1-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW2.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2510" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW2-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW3.png" rel="lightbox[2505]"></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW3.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2511" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW3-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/ALMW4.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2507" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/ALMW4-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW5.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2513" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW5-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW6.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2525" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW6-180x300.png" alt="" width="180" height="300" /></a></div><p>الآن و إذا أردت تحميل البرنامج (على الأغلب أنت تريد ذلك) فما عليك إلا مسح الكود الآتي:</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/06/LiveMapsqrcode.png" rel="lightbox[2505]"><img
class="aligncenter size-full wp-image-2512" src="http://ardroid.com/wp-content/uploads/2010/06/LiveMapsqrcode.png" alt="" width="210" height="210" /></a></p><p><em>[مصادر: <a
href="http://www.talkandroid.com/3157-advanced-map-live-wallpaper-now-in-android-market/">talkandroid.com</a>, <a
href="http://www.androidcentral.com/advanced-map-live-wallpaper-why-we-love-open-source">androidcentral.com</a>]</em></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/feed/</wfw:commentRss> <slash:comments>17</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/06/AMLW-thumb-e1276522902695.jpg" /> </item> <item><title>تخزين التطبيقات على بطاقة الذاكرة &#8220;قادم قريباً&#8221;</title><link>http://ardroid.com/2010/05/01/micro-sd-app-storage-coming-soon/</link> <comments>http://ardroid.com/2010/05/01/micro-sd-app-storage-coming-soon/#comments</comments> <pubDate>Sat, 01 May 2010 20:04:52 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android 2.2]]></category> <category><![CDATA[Apps]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Froyo]]></category> <category><![CDATA[improvements]]></category> <category><![CDATA[Micro SD Storage]]></category><guid
isPermaLink="false">http://ardroid.com/?p=2143</guid> <description><![CDATA[من أكبر مطالب مستخدمي أندرويد منذ انطلاقة النظام هي القدرة على تخزين التطبيقات بشكل كامل على بطاقات الذاكرة بدلاً من الوضع الحالي الذي يفرض تخزين الملفات الأساسية للتطبيقات على الأقل على الذاكرة الداخلية للجهاز. وبحسب مطور من المطورين العاملين على نظام أندرويد فإن هذه الميزة سيتم إضافتها قريباً ولكن المصدر اعتذر عن ذكر الجدول الزمني&#8230; <a
href="http://ardroid.com/2010/05/01/micro-sd-app-storage-coming-soon/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="599" height="147" src="http://ardroid.com/wp-content/uploads/2010/05/android-microsd.jpg" class="attachment-large" alt="android-microsd" title="android-microsd" /><p>من أكبر مطالب مستخدمي أندرويد منذ انطلاقة النظام هي القدرة على تخزين التطبيقات بشكل كامل على بطاقات الذاكرة بدلاً من الوضع الحالي الذي يفرض تخزين الملفات الأساسية للتطبيقات على الأقل على الذاكرة الداخلية للجهاز. وبحسب مطور من المطورين العاملين على نظام أندرويد فإن هذه الميزة سيتم إضافتها قريباً ولكن المصدر اعتذر عن ذكر الجدول الزمني لإطلاق الميزة (والتي قد تأتي مع <a
href="http://ardroid.com/2010/04/24/%d9%83%d9%84-%d9%85%d8%a7-%d9%86%d8%b9%d8%b1%d9%81%d9%87-%d9%88%d9%85%d8%a7%d9%84%d8%a7-%d9%86%d8%b9%d8%b1%d9%81%d9%87-%d8%b9%d9%86-%d9%86%d8%b3%d8%ae%d8%a9-%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a/" target="_blank">أندرويد 2.2 &#8220;فرويو&#8221;</a>) بسبب سريّته.</p><p><a
href="http://code.google.com/p/android/issues/detail?id=1151#c535" target="_blank"><img
class="alignnone size-full wp-image-2145" src="http://ardroid.com/wp-content/uploads/2010/05/android-microsd.jpg" alt="" width="599" height="147" /></a></p><p>والبارحة تم إغلاق <a
href="http://code.google.com/p/android/issues/detail?id=1151" target="_blank">الموضوع على صفحة غوغل كود</a> الخاصة بأندرويد الذي قد تم إضافته في أكتوبر / تشرين الأول 2008 وصوت له 2561 شخص (بالمقارنة مع <a
href="http://ardroid.com/2010/01/07/arabic-on-android/" target="_blank">دعم اللغة العربية</a> على أندرويد والذي تمت إضافته في ديسمبر / كانون الأول 2009 وصوت له 2969 شخص حتى وقت كتابة هذه المقالة).</p><p>إن كنت من مستخدمي أندرويد حالياً أخبرنا بتجربتك وإذا ما كنت قد عانيت من صغر حجم الذاكرة الداخلية للجهاز والتي يتحتم تنزيل التطبيقات عليها.</p><p>[المصدر <a
href="http://www.engadget.com/2010/05/01/android-support-for-memory-card-app-storage-is-finally-coming-s/" target="_blank"><em>Engadget</em></a> | الصورة بواسطة مستخدم فليكر <em>Kaeru.my</em>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/05/01/micro-sd-app-storage-coming-soon/feed/</wfw:commentRss> <slash:comments>10</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/05/Micro-Sd-by-Kaeru.my_.jpg" /> </item> <item><title>رجل أندرويد الجديد تيم براي: &#8220;الآيفون حديقة مسيجة تفتقر للحرية&#8221;</title><link>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/</link> <comments>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/#comments</comments> <pubDate>Tue, 16 Mar 2010 18:12:37 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Tim Bray]]></category> <category><![CDATA[آبل]]></category> <category><![CDATA[آيفون]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[تيم براي]]></category> <category><![CDATA[غوغل]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1603</guid> <description><![CDATA[استقطبت غوغل الخبير السابق في Sun Microsystems تيم براي (Tim Bray) ليصبح عضواً في فريق تطوير أندرويد، وقد أعلن تيم عن انضمامه في تدوينة لاهبة انتقد فيها سياسات آبل تجاه الآيفون وبشدة، هذا هو نصها: رؤية الآيفون لمستقبل الإنترنت النقال تحذف الأمور المثيرة للجدل والجنس والحرية، ولكنها تتضمن قيودا صارمة على من يمكن له أن&#8230; <a
href="http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="401" height="350" src="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" class="attachment-large" alt="iphone-vs-android" title="iphone-vs-android" /><p>استقطبت غوغل الخبير السابق في Sun Microsystems تيم براي (Tim Bray) ليصبح عضواً في فريق تطوير أندرويد، وقد أعلن تيم عن انضمامه في تدوينة لاهبة انتقد فيها سياسات <a
href="http://ardroid.com/tag/apple/" target="_blank">آبل</a> تجاه <a
href="http://ardroid.com/tag/iphone/" target="_blank">الآيفون</a> وبشدة، هذا هو نصها:</p><blockquote><p>رؤية الآيفون لمستقبل الإنترنت النقال تحذف الأمور المثيرة للجدل والجنس والحرية، ولكنها تتضمن قيودا صارمة على من يمكن له أن يعرف ماذا ومن يمكن له أن يقول ماذا. إنها حديقة مسورة مثل عالم ديزني محاطة بمحامين حادي الأنياب. الناس الذين ينشئون التطبيقات يعملون على هوى المالك ويخافون غضبه.</p><p>أنا أكرهها.</p><p>أنا أكره ذلك على الرغم من أن الآيفون يتمتع ببرمجيات وعتاد ممتازين، لأن الحرية ليست مجرد كلمة أخرى لا تعني شيئاً، كما أنها ليست عنصراً اختيارياً.</p><p>ليست الميزة الكبرى للإنترنت هي التقنية، بل هي أنها أول منصة ليس لها بائع (أول من أشار إلى هذا الأمر هو ديف واينر). وكل الأشياء التي لها أهمية تنبع من ذلك، وهي تهم الآن عدداً ضخماً من الناس. إنها النوع الوحيد من المنصات الذي أريد المساعدة في بنائه.</p><p>آبل على ما يبدو تعتقد أنه يمكن لك أن تحصد فوائد الإنترنت، بينما في نفس الوقت تسيطر على أي البرامج يمكن تشغيلها وأي أجزاء الحزمة يمكن الوصول إليها وما يمكن للمطورين أن يقولوه لبعضهم بعضاً.</p><p>أعتقد أنهم على خطأ وأرى هذا العمل بمثابة فرصة للمساعدة في إثبات ذلك.</p></blockquote><p>تأتي تصريحات براي لتضيف زيتاً على نار الصراع الدائر بين آبل وغوغل والذي تمثل مؤخراً في مقاضاة آبل لشركة <a
href="http://ardroid.com/tag/htc/" target="_blank">HTC</a> بتهمة التعدي على براءات اختراع متعددة تحوزها آبل وطالبت بمنع بيع منتجات HTC في الولايات المتحدة.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" rel="lightbox[1603]"><img
class="size-full wp-image-1609 aligncenter" src="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" alt="" width="401" height="350" /></a></p><p
style="text-align: right">[المصدر <a
href="http://www.eurodroid.com/2010/03/new-google-android-man-iphone-world-is-a-sterile-disney-fied-walled-garden/" target="_blank"><em>Euro Droid</em></a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/feed/</wfw:commentRss> <slash:comments>13</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/03/Tim_Bray.jpg" /> </item> <item><title>غوغل توزع هواتف مجانية على المطورين المميزين</title><link>http://ardroid.com/2010/03/07/google-android-market-seeding/</link> <comments>http://ardroid.com/2010/03/07/google-android-market-seeding/#comments</comments> <pubDate>Sun, 07 Mar 2010 16:14:54 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[Android Market Seeding]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Motorola Droid]]></category> <category><![CDATA[Nexus One]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[موتورولا درويد]]></category> <category><![CDATA[نيكسوس ون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1566</guid> <description><![CDATA[أفاد عدة مطورين الأسبوع الماضي عن تلقيهم رسالة من غوغل تفيد بأنها سترسل لهم هاتف نيكسوس ون أو موتورولا درويد مجاناً مكافأة على تطويرهم لتطبيقات متميزة لسوق أندرويد وقد كان نص الرسالة كالتالي: بالنظر لمساهمتك في نجاح سوق أندرويد، نود أن نقدم لك جهاز أندرويد جديد كجزء من برنامج دعم المطورين الخاص بنا. لقد تلقيت&#8230; <a
href="http://ardroid.com/2010/03/07/google-android-market-seeding/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2010/03/Android-splash.jpg" class="attachment-large" alt="Android-splash" title="Android-splash" /><p>أفاد عدة مطورين الأسبوع الماضي عن تلقيهم رسالة من غوغل تفيد بأنها  سترسل لهم هاتف <a
href="http://ardroid.com/tag/nexus-one/" target="_blank">نيكسوس ون</a> أو <a
href="http://ardroid.com/tag/motorola-droid/" target="_blank">موتورولا درويد</a> مجاناً مكافأة على تطويرهم لتطبيقات متميزة <a
href="http://ardroid.com/tag/android-market/" target="_blank">لسوق  أندرويد</a> وقد كان نص الرسالة كالتالي:</p><blockquote><p>بالنظر لمساهمتك في  نجاح سوق أندرويد، نود أن نقدم لك جهاز أندرويد جديد كجزء من برنامج دعم  المطورين الخاص بنا.</p><p>لقد تلقيت هذه الرسالة كونك أحد أفضل المطورين  لبرامج أندرويد حيث لديك تطبيق واحد أو أكثر تقييمهم 3.5 نجوم وتم تحميله  من قبل ما يزيد على 5000 شخص.</p></blockquote><p>بعد ذلك يطلب من المطور  تعبئة نموذج حتى يتم إرسال هاتف نيكسوس ون أو موتورولا درويد له بالبريد  بعد ذلك، وفيما يلي نص رسالة التأكيد على إرسال الهاتف:</p><blockquote><p>عزيزي  ******</p><p>لقد وصلتنا معلوماتك إلى برنامج دعم مطوري أندرويد وقمنا  بالمصادقة على رقم طلبك من حساب مطور أندرويد الخاص بك بنجاح.</p><p>سيتم  إرسال بياناتك إلى شريك الشحن الخاص بنا لمعالجة طلبك. للتأكيد فقط، هذه  المعلومات التي وصلتنا منك:</p><p>*********</p><p>**** بيانات شخصية ****</p><p>إذا  كنت تحتاج التعديل على المعلومات يرجى أن تتصل بنا على العنوان التالي:  android-market-seeding@google.com في أقرب وقت ممكن. توقع أن تستلم جهازك خلال 2-4 أسابيع.</p><p>بالنيابة عن فريق أندرويد،</p><p>شكراً لك، واستمتع بالبرمجة!</p></blockquote><p>مصادر:</p><p><a
href="http://androidblogger.blogspot.com/2010/03/google-really-takes-care-of-developers.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+PlanetAndroidCom+%28Planet+Android%29" target="_blank"><em>Android Blogger</em></a></p><p><a
href="http://www.androidguys.com/2010/03/03/google-giving-free-nexus-droid-handsets-developers/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+androidguyscom+%28AndroidGuys%29" target="_blank"><em>Android Guys</em></a></p><p><a
href="http://www.eurodroid.com/2010/03/googles-device-seeding-program-underway-free-phones-heading-out-to-developers-soon/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+PlanetAndroidCom+%28Planet+Android%29" target="_blank"><em>Euro Droid</em></a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/03/07/google-android-market-seeding/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/03/Android-splash.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس السادس</title><link>http://ardroid.com/2010/02/15/android-programming-series-l6/</link> <comments>http://ardroid.com/2010/02/15/android-programming-series-l6/#comments</comments> <pubDate>Mon, 15 Feb 2010 21:29:45 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[layout]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1419</guid> <description><![CDATA[مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة لنبدأ! نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع&#8230; <a
href="http://ardroid.com/2010/02/15/android-programming-series-l6/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="485" height="88" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" class="attachment-large" alt="Screen shot 2010-02-15 at 11.57.30 PM" title="Screen shot 2010-02-15 at 11.57.30 PM" /><p
dir="rtl">مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">لنبدأ!<br
/> نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع في داخله الأزرار وال Widgets الأخرى. ولكنه ليس الوسم الوحيد المستخدم.</p><p
dir="rtl">سنتعرف في هذا الدرس على وظيفة و كيفية إنشاء ما يلي:</p><p
dir="rtl">١- وعاء &lt;LinearLayout&gt;</p><p
dir="rtl">٢- وعاء &lt;TableLayout&gt;</p><p
dir="rtl">٣- وعاء &lt;ScrollView&gt;</p><p
dir="rtl"><p
dir="rtl"><strong>١- وعاء &lt;LinearLayout&gt;</strong></p><p
dir="rtl">لدينا عادة الخصائص\العناصر التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">بالنسبة لخاصية التوجه Orientation يتم عبرها تحديد طريقة رصف الأزرار وال Widgets في الصفحة. الوضع الرأسي Vertical يعني وضع العناصر بشكل عمودي، أما Horizontal فيعني صفها بشكل أفقي.</p><p
dir="rtl">خاصية layout_width مسؤولة عن تحديد عرض الوعاء، ونحن في هذه الحالة نريد من الوعاء ملأ الشاشة واحتلال جميع المساحات، لذلك نختار fill_parent.</p><p
dir="rtl">خاصية layout_height يتم عبرها تحديد ارتفاع الوعاء، وأيضا نريده ملأ المساحات كاملة.</p><p
dir="rtl">نقوم الآن بإنشاء زر لنرى كيفية التحكم بطريقة ظهوره في واجهة التطبيق.</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">بالنسبة للخاصية الأولى، android:text فهي المسؤولة عن تحديد النص المراد ظهوره على الزر. android:id تقوم بإعطاء رقم خاص للعنصر يميزه عن غيره. بالنسبة للخاصيتين الأخيرتين فقد تم شرحهما في الأعلى، ولكني سأتعرض للقيم التي من الممكن إعطاءها لهما. هناك ٣ احتمالات. الأول fill_parent الذي يقوم بملىء المساحة الخالية بالزر بحسب الخاصية التي أعطي لها (layout_width أو layout_height). الثاني هو wrap_content والذي يقوم بضغط حجم الزر بحسب محتواه النصي. الاحتمال الثالث هو أن يتم تحديد الارتفاع والعرض بمقياس البيكسل.</p><p
dir="rtl">مثال للحالة الأولى والثانية (سيملأ الزر المساحات المجاورة له بالعرض، ولكن ارتفاعه سيكون مضغوطا):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1422  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM-300x110.png" alt="" width="300" height="110" /></a></p><p
dir="rtl"><p
dir="rtl">(قم بتجربة الاحتمالات الأخرى، ويمكنك الاستعانة بتبويب Layout لاستعراض نتيجة التصميم بدلا من تشغيل التطبيق في كل مرة.. كما يمكنك استخدام هذه الواجهة لتصميم صفحة النشاط في التطبيق دون كتابة كود ال XML في كل مرة)</p><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1423  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM-300x231.png" alt="" width="300" height="231" /></a></p><p
dir="rtl"><p
dir="rtl">مثال للحالة الثالثة:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;300px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;100px&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1424  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM-300x126.png" alt="" width="300" height="126" /></a></p><p
dir="rtl"><p
dir="rtl">سنقوم بإضافة زر ثانٍ، ولكننا نريد وضعه الآن بجانب الزر الأول. كيف نقوم بذلك؟ لا ننس الخاصية الأولى الخاصة بوعاء LinearLayout وهي Orientation. نقوم بتعديلها ليتم عرض ال Widgets بشكل أفقي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;horizontal&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">والزر الثاني (قم بتسميته بنفس اسم الزر السابق):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1433  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM-300x54.png" alt="" width="300" height="54" /></a></p><p
dir="rtl"><p
dir="rtl"><p
dir="rtl">سنقوم الآن بالتعرف على خاصية الوزن android:layout_weight والتي تقوم بإعطاء أولوية نقوم بتحديدها لأحد الزرين ليحتل أعلاهما أولوية كمية أكبر من المساحات الفارغة. فمثلا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1426  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM-300x95.png" alt="" width="300" height="95" /></a></p><p
dir="rtl"><p
dir="rtl">هناك عدد من الخصائص الأخرى والتي يتم عبرها التحكم بطريقة وضع ال Widgets فلدينا مثلا android:layout_agravity وهي مناسبة أكثر في حالة التعامل مع الWidgets عند رصفهم رأسيا ونقوم عبرها بالتحكم بخاصية المحاذاة alignment التي سيكون عليها الزر مثلا. وفي حال أردنا التحكم بالمحاذاة في طريقة الرصف الأفقية، فمن الأفضل استخدام android:layout_marginLeft وتحديد عدد النقاط Pixels التي تفصل بين الزر والآخر.</p><p
dir="rtl">مثال على android:layout_marginLeft في حالة الرصف الأفقية android:orientation=&#8221;horizontal&#8221; :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_marginLeft</span>=<span style="color: #ff0000;">&quot;180px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1427  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM-300x44.png" alt="" width="300" height="44" /></a></p><p
dir="rtl"><p
dir="rtl">ومثال على android:layout_gravity بالوضع الرأسي android:orientation=&#8221;vertical&#8221;:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;right&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1428  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM-300x81.png" alt="" width="300" height="81" /></a></p><p
dir="rtl"><p
dir="rtl">طبعا نلاحظ القائمة المنسدلة والتي تحوي عددا من القيم التي يمكنكم تجربتها ورؤية تأثيرها.</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1429  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM-300x138.png" alt="" width="300" height="138" /></a></p><p
dir="rtl"><p
dir="rtl">قوموا بتجربة خصائص أخرى كال android:gravity و android:paddingLeft وغيرها ولاحظوا تأثيراتها.</p><p
dir="rtl">في نهاية هذا القسم، تجدر الإشارة الى أنه يمكننا تغيير خاصية توجه\وضع الوعاء Orientation أثناء عمل التطبيق. فمثلا يمكننا برمجة التطبيق بأن يقوم بتغيير التوجه ليصبح بالوضع الأفقي عند ضغط زر. تتم هذه العملية باستدعاء دالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">x.<span style="color: #006633;">setOrientation</span><span style="color: #009900;">&#40;</span>LinearLayout.<span style="color: #006633;">HORIZONTAL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p
dir="rtl">حيث x هي اسم ال Widget ، زر مثلا.</p><p
dir="rtl"><strong>٢- وعاء &lt;TableLayout&gt;<span
style="font-weight: normal"> </span></strong></p><p
dir="rtl">يأخذ هذا الوعاء شكل الجدول. لذا، فإننا نستخدم وسم &gt;TableRow&lt; كلما أردنا إنشاء صف جديد. يتميز هذا الوعاء بعدد من الخصائص:</p><p
dir="rtl"><span
style="color: #339966">أ-</span> android:layout_span  : وهي خاصية تحدد المدى الذي نود أن يحتله العنصر، وتأخذ قيمة عددية. القيمة العددية تحدد بشكل غير مباشر عدد الأعمدة Columns داخل الصف.</p><p
dir="rtl"><span
style="color: #339966">ب-</span> android:layout_column : وهي خاصية تحدد رقم العمود الذي سيتوضع عنده العنصر Widget. وترقيم الأعمدة يبدأ من الصفر، بمعنى أن أول عمود رقمه صفر، وهكذا.</p><p
dir="rtl"><span
style="color: #339966">ج-</span> android:stretchColumns : وهي خاصية محصورة بالوعاء نفسه (أي لا يمكن تطبيقها على العناصر Widgets  ) وهي تعمل على شد العمود ليغطي المساحاة الفارغة، وتأخذ قيمة عددية تحدد رقم العمود.</p><p
dir="rtl"><span
style="color: #339966">د-</span> android:shrinkColumns : وهي عكس الخاصية السابقة.</p><p
dir="rtl">مثال توضيحي:</p><p
dir="rtl">للحصول على التصميم التالي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1430  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl">نستعمل الكود:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><strong>٣- وعاء &lt;ScrollView&gt;</strong></p><p
dir="rtl">نستعمل هذا الوعاء في حالة كان المحتوى الذي نود عرضه في الصفحة كبيرا بحيث أنه لا يمكن وضعه في صفحة واحدة. طريقة عمله سهلة وهي تضمين التصميم الذي نرغبه بداخله. فمثلا، يمكننا وضع الكود الذي كتبناه في الأعلى بداخله (بعد إضافة عدد من العناصر Widgets حتى يتطلب عرض المحتوى أكثر من صفحة).</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1431  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl"><p
dir="rtl">بقي لدينا وعاء آخر وهو &lt;RelativeLayout&gt; وسأتكلم عنه في درس لاحق إن شاء الله..</p><p
dir="rtl">أتمنى أن يكون هذا الدرس قد أعجبكم.. <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">بالتوفيق..</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/02/15/android-programming-series-l6/feed/</wfw:commentRss> <slash:comments>41</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/02/android-bauhaus-background.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الخامس</title><link>http://ardroid.com/2010/01/27/android-programming-series-l5/</link> <comments>http://ardroid.com/2010/01/27/android-programming-series-l5/#comments</comments> <pubDate>Wed, 27 Jan 2010 20:21:55 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android SDK]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1107</guid> <description><![CDATA[مرحبا.. مع وصولنا الى الحلقة الخامسة من سلسلة تعلم برمجة الأندرويد، وبعد تغطيتنا لأهم المفاهيم، ستكون الحلقات القادمة عبارة عن أمثلة متنوعة أنقلها لكم من مصادر مختلفة كالكتب والمواقع الالكترونية. وستتنوع هذه الأمثلة كون البرمجة والحزمة البرمجية SDK ماهي الا أدوات في صندوق العدة الذي يحمله المبرمج، والتطبيقات تتشكل بحسب إبداع ومهارة المبرمج. سنتعلم في&#8230; <a
href="http://ardroid.com/2010/01/27/android-programming-series-l5/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="363" height="292" src="http://ardroid.com/wp-content/uploads/2010/01/android_flickr_samuraispy-copy.jpg" class="attachment-large" alt="android_flickr_samuraispy copy" title="android_flickr_samuraispy copy" /><p
dir="rtl">مرحبا..</p><p
dir="rtl">مع وصولنا الى الحلقة الخامسة من سلسلة تعلم برمجة الأندرويد، وبعد تغطيتنا لأهم المفاهيم، ستكون الحلقات القادمة عبارة عن أمثلة متنوعة أنقلها لكم من مصادر مختلفة كالكتب والمواقع الالكترونية. وستتنوع هذه الأمثلة كون البرمجة والحزمة البرمجية SDK ماهي الا أدوات في صندوق العدة الذي يحمله المبرمج، والتطبيقات تتشكل بحسب إبداع ومهارة المبرمج.</p><p
dir="rtl">سنتعلم في هذا الدرس المواضيع التالية:</p><p
dir="rtl">١- استخدام الواجهة الخاصة بالإعدادات كتلك المستخدمة في نظام الأندرويد</p><p
dir="rtl">٢- تعديل الثيم الخاص بعرض الرسالة</p><p
dir="rtl">٣- تشغيل مقاطع صوتية داخل التطبيق</p><p
dir="rtl"><p
dir="rtl"><strong>١- استخدام الواجهة الخاصة بالإعدادات كالمستخدمة في الأندرويد<span
style="font-weight: normal"> </span></strong></p><p
dir="rtl">سنستخدم التطبيق الذي قمنا بالعمل عليه في الحلقة السابقة لنضيف نشاطا ثالثا. ننشيء ملفا باسم: Act3.java ونضع فيه التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.preference.PreferenceActivity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act3 <span style="color: #000000; font-weight: bold;">extends</span> PreferenceActivity
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
addPreferencesFromResource<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>ننشيء ملفا تحت res/layout تحت مسمى act3.xml ونضع فيه التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;PreferenceScreen</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;false&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/PreferenceScreen<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">نضيف التالي في ملف القائمة ArdroidMultiActs.java :</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
&nbsp;
showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete3 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act3.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>وختاما نضيف التالي في ArdroidMultiActs Manifest.java :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">البرنامج يصبح كالتالي عند اختيار الخيار الثالث:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-12.38.58-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1113  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-12.38.58-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
dir="rtl"><strong>٢- تعديل الثيم الخاص بعرض الرسالة</strong></p><p
dir="rtl">يمكننا استخدام ثيمات معرفة مسبقا في الحزمة التطويرية لعرض المحتوى الذي نرغبه. وسنجد أن هذه الثيمات تشابه تلك المستخدمة في الأندرويد نفسه. لتحديد نوع الثيم الخاص بنشاط معين، ننشيء ملفا باسم: Act4.java ونضع فيه التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act4 <span style="color: #000000; font-weight: bold;">extends</span> Activity
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ننشيء ملفا تحت res/layout تحت مسمى act4.xml ونضع فيه التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/text&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;This is an android powered application&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">نضيف التالي في ملف القائمة ArdroidMultiActs.java :</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
&nbsp;
showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span>
&nbsp;
showAct4<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct4<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete4 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act4.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">وختاما نضيف التالي في ArdroidMultiActs Manifest.java :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act4&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 4&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:theme</span>=<span style="color: #ff0000;">&quot;@android:style/Theme.Dialog&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">بالضغط على الخيار الرابع، يظهر لدينا ما يلي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-4.56.37-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1108  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-4.56.37-PM-204x300.png" alt="" width="204" height="300" /></a></p><p
dir="rtl"><strong>٣- تشغيل مقاطع صوتية داخل التطبيق</strong></p><p
dir="rtl">من المفيد أحيانا إضافة مقاطع صوتية للتطبيق وتمكينه من تشغيلها. قد تكون المقاطع مقترنة بأزرار لوحة المفاتيح إن وجدت، أو بأزرار نقوم بإنشائها داخل التطبيق. سنقوم بعمل تطبيق يحتوي على زر واحد من شأنه تشغيل مقطع صوتي في حال الضغط عليه. كما سيقوم بعمل إيقاف مؤقت للمقطع في حال ضغطنا عليه من جديد.</p><p
dir="rtl">أود التنبيه لنقطة مهمة. فيما سبق، قمت بذكر أن المقاطع الصوتية ومقاطع الفيديو يتم إضافتها الى ملف ال  assets. ولكن التغييرات العديدة في الحزمة البرمجية التطويرية SDK قامت باسترجاع الطريقة السابقة من حيث المكان الذي توضع فيه مقاطع الصوت. والطريقة السابقة تقتضي بوضع المقطع في مجلد اسمه raw نقوم بإنشائه تحت المجلد res. سأقوم بوضع أغنية سميتها song.mp3 في مشروع جديد أسميته AndroidAudio على النحو التالي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.22.01-PM.png" rel="lightbox[1107]"><img
class="size-full wp-image-1109  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.22.01-PM.png" alt="" width="158" height="136" /></a></p><p
dir="rtl">في ملف ال main.xml، قمت بإضافة الكود التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:background</span>=<span style="color: #ff0000;">&quot;#4500ffff&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:padding</span>=<span style="color: #ff0000;">&quot;40dip&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Android Audio&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/ac1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;play/pause&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">الآن نعود الى ملف المصدر البرمجي AndroidAudio.java وأقوم باستيراد المكتبات والمجموعات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.MediaPlayer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Toast</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p
dir="rtl">المجموعة الثانية خاصة بالكائن الذي سنقوم بإضافة الأغنية له. بالنسبة لآخر مجموعة، سنرى تأثيرها فيما بعد.</p><p
dir="rtl">نقوم بإضافة الكود التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AndroidAudio <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> MediaPlayer mp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle ww<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>ww<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> play <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">ac1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> MediaPlayer mp <span style="color: #339933;">=</span> MediaPlayer.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">song</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
play.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playstop <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.start();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;played&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.pause();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;paused&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">المتغير playstop يتم استخدامه أثناء الضغط على الزر حتى نتمكن من معرفة حالة المقطع (يعمل أو متوقف). الدالة MediaHandler هي دالة قمت بتعريفها والغرض منها تمرير الكائن الذي يحمل المقطع الصوتي إضافة الى رقم تقوم من خلاله الدالة بإيقاف المقطع أو إعادة تشغيله (ويمكن الاستعاضة عنها باستخدام السطر الذي يليها مباشرة). الدالة show1 هي دالة نقوم بتمرير عبارة نصية عبرها تقوم بإظهارها بشكل مؤقت على الشاشة.</p><p
dir="rtl">الدالة MediaHandler :</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> MediaHandler<span style="color: #009900;">&#40;</span>MediaPlayer mp, <span style="color: #000066; font-weight: bold;">int</span> e<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">الدالة show1 :</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> show1<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> ss<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, ss,Toast.<span style="color: #006633;">LENGTH_SHORT</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">الشكل النهائي لملف AndroidAudio.java</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.AndroidAudio</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.MediaPlayer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Toast</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AndroidAudio <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> MediaPlayer mp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle ww<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>ww<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> play <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">ac1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> MediaPlayer mp <span style="color: #339933;">=</span> MediaPlayer.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">song</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
play.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playstop <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.start();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;played&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.pause();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;paused&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> MediaHandler<span style="color: #009900;">&#40;</span>MediaPlayer mp, <span style="color: #000066; font-weight: bold;">int</span> e<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> show1<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> ss<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, ss,Toast.<span style="color: #006633;">LENGTH_SHORT</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.35.50-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1110  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.35.50-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.26-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1111  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.26-PM-259x300.png" alt="" width="259" height="300" /></a></p><p
style="text-align: center"><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.43-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1112  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.43-PM-249x300.png" alt="" width="249" height="300" /></a></p><p
dir="rtl">أتمنى أن تكون هذه الحلقة قد نالت إعجابكم. تحياتي لكم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/27/android-programming-series-l5/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/android_flickr_samuraispy-copy.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الرابع</title><link>http://ardroid.com/2010/01/18/android-programming-series-l4/</link> <comments>http://ardroid.com/2010/01/18/android-programming-series-l4/#comments</comments> <pubDate>Mon, 18 Jan 2010 21:37:46 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[tutorial]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[دروس]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1002</guid> <description><![CDATA[مرحبا بكم من جديد.. تساءل عدد من القراء إن كان يلزمهم الالمام بلغة الجافا حتى يتمكنوا من اتمام هذه السلسلة واستيعابها. الجواب نعم! وهناك عدد من الكتب التي تشرح لغة الجافا البرمجية بشكل مبسط وسهل الفهم ولعل أهمها برأيي هو كتاب Thinking in Java. وطبعا يوجد عدد من المواقع\المنتديات العربية التي تقدم دروسا في الجافا&#8230; <a
href="http://ardroid.com/2010/01/18/android-programming-series-l4/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="460" height="285" src="http://ardroid.com/wp-content/uploads/2010/01/Android-SS1.jpg" class="attachment-large" alt="Android SS1" title="Android SS1" /><p>مرحبا بكم من جديد..</p><p>تساءل عدد من القراء إن كان يلزمهم الالمام بلغة الجافا حتى يتمكنوا من اتمام هذه السلسلة واستيعابها. الجواب نعم! وهناك عدد من الكتب التي تشرح لغة الجافا البرمجية بشكل مبسط وسهل الفهم ولعل أهمها برأيي هو كتاب <a
href="http://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486">Thinking in Java</a>. وطبعا يوجد عدد من المواقع\المنتديات العربية التي تقدم دروسا في الجافا لمختلف المستويات.</p><p>وأرسل لي أحد القراء الأفاضل رسالة يتساءل فيها عن أفضل الكتب التي تشرح برمجة الأندرويد. في الواقع هناك كتب عديدة يمكن مطالعة عناوينها وتقييماتها عبر أمازون، على أنني لا أفضل الكتاب الذي ذكرت في بداية السلسلة بأنني سأستخدمه أثناء الشرح والسبب كمية الأخطاء الكبيرة الموجودة في هذا الكتاب، إضافة الى أنه يستخدم الحزم البرمجية القديمة التي انقرض عدد من أهم دوالها في الحزم الجديدة، وهذا ما أدى الى حصول الكتاب على تقييم منخفض في Amazon من قبل القراء، حتى أن عددا منهم انتقدوا عدم تقيد الكاتب ب &#8220;عرف&#8221; الجافا <a
href="http://java.sun.com/docs/codeconv/">Java Convention</a> في تسمية الدوال وال Packages، وأعترف بأنني لم أقم بالا لهذا الأمر في هذه السلسلة ولكنني سأعمل على تدارك الموضوع في الدروس القادمة، فمعذرة من قرائنا الأعزاء.</p><p>ابتداء من هذا الدرس ستتنوع المصادر التي سأستخدمها في الشرح العملي، حيث أننا استوفينا شرح الجانب النظري المبسط من الأندرويد بمساعدة الكتاب آنف الذكر وهي بالمناسبة النقطة الوحيدة المضيئة في هذا الكتاب، وكان لزاما عليّ أن ألجأ لأحد الكتب في شرح المفاهيم النظرية لأنني لست بارعا في شرحها مرتبة ومتسلسلة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>حسنا، بعد المقدمة الطويلة، سنتعرف اليوم على:</p><p><strong>١- كيفية التأكد من صحة المدخلات باستخدام Regular Expressions وكيفية إظهار رسالة خطأ.</strong></p><p><strong>٢- استخدام زر القائمة Menu وكيفية اضافة خيارات له.</strong></p><p><strong>٣- كيفية عمل تطبيق متعدد الأنشطة.</strong></p><p>لنبدأ..</p><p><strong>١- كيفية التأكد من صحة المدخلات باستخدام Regular Expressions وكيفية إظهار رسالة خطأ.</strong></p><p>سنقوم باستدعاء المكتبة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.regex.*</span><span style="color: #339933;">;</span></pre></div></div><p>وسنقوم في داخل المجموعة المجهولة الخاصة بزر الاتصال بعمل باستدعاء دالة validatePhoneNumber (سنقوم بكتابة محتواها بعد قليل) لتتحقق من البيانات التي قام بإدخالها المستخدم. والآن، عند استدعاء الدالة الخاصة بالزر (عند ضغط الزر) سنستخدم جملة if على الشكل التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>بالنسبة لما ورد في جملة else، سنقوم بتجاهله حاليا.</p><p>علينا الآن كتابة محتوى الدالة validatePhoneNumber على الشكل التالي: (وهي ستكون كدالة تابعة للمجموعة المجهولة Anonymous Class):</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>عند استدعاء هذه الدالة، نستدعي بداية الدالة Pattern.compile التي تقوم بإنشاء رقم بناء على الصيغة التي عرفناها (وهناك قواعد عديدة لصيغ التحقق وقمت باختيار</p><p>(\\d{2}-)?\\d{7}</p><p>والتي تعني أن المستخدم يمكنه ادخال رقمين في البداية ووضع &#8211; بعدهم ومن ثم اكمال الرقم بسبعة أعداد. كما يحق له عدم ادخال الرقمين الأولين وعدم ادخال &#8211; ولكنه يجب أن يدخل سبعة أعداد. فمثلا الرقم 01-1234567 هو رقم صحيح، والرقم 1234567صحيح ولكن 1-1234567 والرقم 123456 هو غير صحيح.).</p><p>تقوم الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">matcher<span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>بمقارنة الرقم المدخل من قبل المستخدم بالرقم المنشأ الذي يتبع الصيغة التي عرّفناها. تقوم الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">validatePhoneNumber<span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>بإعادة صح أم خطأ True or Flase .</p><p>المجموعة المجهولة الخاصة بالزر تصبح على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>نتحول الآن الى كيفية إظهار رسالة خطأ والتي استدعيناها في جملة ال Else في الدالة السابقة عبر استدعاء</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>وهي دالة موجودة في مجموعة Activity التي يتبع لها تطبيقنا ككل. تقوم دالة أخرى موجودة في ال Activity أيضا وتسمى</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span></pre></div></div><p>باستقبال الطلب الذي أطلقته الدالة السابقة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span></pre></div></div><p>بداية، نقوم باستدعاء المكتبات والمجموعات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Dialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.AlertDialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.DialogInterface</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>ونقوم الآن بكتابة محتوى الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span></pre></div></div><p>بالشكل التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">Dialog</span> onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>id <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> AlertDialog.<span style="color: #006633;">Builder</span><span style="color: #009900;">&#40;</span>AndroidPhoneDialer.<span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Error&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setMessage</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please enter a valid number&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setPositiveButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;OK&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> DialogInterface.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>DialogInterface dialog, <span style="color: #000066; font-weight: bold;">int</span> whichButton<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* User clicked OK so do some stuff */</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>لا صعوبة تذكر في هذه الدالة، ولاحظوا كيفية تحديد النص المراد عرضه. لاحظوا أيضا إمكانية عمل شيء معين في حال ضغط المستخدم زر ال OK في رسالة الخطأ. ولاحظوا أيضا أننا مررنا رقم ١ في showDialog ويمكننا طبعا تمرير أرقام مختلفة لعرض رسائل مختلفة بحسب الحالة، وهذا يتم عبر If .</p><p>اذا يصبح الملف المصدري ArdroidCaller.java  كاملا:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android_programmers_guide.AndroidPhoneDialer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.net.Uri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.regex.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Dialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.AlertDialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.DialogInterface</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidCaller <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> EditText phoneNumber <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">phoneNumber</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> callButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">callButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">Dialog</span> onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> AlertDialog.<span style="color: #006633;">Builder</span><span style="color: #009900;">&#40;</span>AndroidPhoneDialer.<span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Error&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setMessage</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please enter a valid number&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setPositiveButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;OK&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> DialogInterface.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>DialogInterface dialog, <span style="color: #000066; font-weight: bold;">int</span> whichButton<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.10-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1015  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.10-PM-300x273.png" alt="" width="300" height="273" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.29-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1016    aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.29-PM-300x275.png" alt="" width="300" height="275" /></a></p><p><strong>٢- استخدام زر القائمة Menu وكيفية اضافة خيارات له.</strong></p><p>ما سنقوم بعمله بكل بساطة هو انشاء المشروع التالي:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.08.16-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1017  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.08.16-PM-220x300.png" alt="" width="220" height="300" /></a></p><p>والذي سيقوم باستخدام زر القائمة لعرض محتوياتها، ولكل خيار، سنقوم بعمل نشاط Activity معين. اذا سنبدأ بكيفية توظيف زر القائمة.</p><p>نقوم بداية باستدعاء المكتبات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>ومن ثم نقوم بإعادة كتابة Override الدالة الموجودة في مجموعة Activity والمسماة onCreateOptionsMenu على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>الدالة menu.add لها عدة أشكال ولكننا سنستعمل:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">add <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> groupId, <span style="color: #000066; font-weight: bold;">int</span> itemId, <span style="color: #000066; font-weight: bold;">int</span> order, CharSequence title<span style="color: #009900;">&#41;</span></pre></div></div><p>حيث أن أول عنصر يدل على رقم المجموعة الخاصة بخيارات القوائم، وافترضت أنهم في مجموعة واحدة، لذلك قمت بوضع 0 عند استدعاء الدالة كما هو الحال في عنصر order حيث أنني لا أهتم بترتيب الخيارات. itemId هو ما يهمني لذلك استخدمت الترقيم لمعرفة هوية الخيار.</p><p>الدالة onCreateOptionsMenu تقوم بتعبئة الخيارات في القائمة عند تشغيل البرنامج. لذلك، سنقوم بإعادة كتابة دالة أخرى موجودة في Activity والتي يتم استدعاؤها بمجرد اختيار أي خيار في القائمة وهي onOptionsItemSelected. في هذه الدالة، سنستخدم Switch المعروفة وذلك لاطلاق النشاط المقترن بالخيار الذي اختير من قبل المستخدم على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>الشكل النهائي لملف:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidMultiActs <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.36.09-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1018  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.36.09-PM-229x300.png" alt="" width="229" height="300" /></a></p><p><strong>٣- كيفية عمل تطبيق متعدد الأنشطة.</strong></p><p>لنتذكر قضية مهمة وهي أن كل نشاط له ملف مصدري .java وله ملف .xml خاص بتصميمه. وهذا ما سنفعله. سنقوم بإنشاء ملف xml للنشاط الأول تحت اسم act1.xml في res/layout وليكن كالتالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:padding</span>=<span style="color: #ff0000;">&quot;30dip&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:background</span>=<span style="color: #ff0000;">&quot;#8123f555&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;AutoCompleteTextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act1Test&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>ثم نقوم بإنشاء ملف Act1.java داخل ال Package في src. المطلوب من النشاط هو عرض مربع النص التلقائي وهو الذي يقوم باقتراح عدة خيارات للمستخدم (نقوم بتحديدها مسبقا) ليكمل عنه الكلمة بدلا من كتابتها كاملة. سنقوم بوضع ما يلي في الملف:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ArrayAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.AutoCompleteTextView</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act1 <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//android.R.layout.simple_dropdown_item_1line is an existing file that contains a style of presenting the list in the application</span>
&nbsp;
ArrayAdapter<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>String<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> monthArray <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayAdapter<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>String<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>,android.<span style="color: #006633;">R</span>.<span style="color: #006633;">layout</span>.<span style="color: #006633;">simple_dropdown_item_1line</span>,months<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> AutoCompleteTextView textView <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>AutoCompleteTextView<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act1Test</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
textView.<span style="color: #006633;">setAdapter</span><span style="color: #009900;">&#40;</span>monthArray<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> months <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">&quot;January&quot;</span>,<span style="color: #0000ff;">&quot;February&quot;</span>,<span style="color: #0000ff;">&quot;March&quot;</span>,
&nbsp;
<span style="color: #0000ff;">&quot;April&quot;</span>,<span style="color: #0000ff;">&quot;May&quot;</span>, <span style="color: #0000ff;">&quot;June&quot;</span>,<span style="color: #0000ff;">&quot;July&quot;</span>,<span style="color: #0000ff;">&quot;August&quot;</span>,<span style="color: #0000ff;">&quot;September&quot;</span>,<span style="color: #0000ff;">&quot;October&quot;</span>,<span style="color: #0000ff;">&quot;November&quot;</span>,
&nbsp;
<span style="color: #0000ff;">&quot;December&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>بالنسبة للنشاط الثاني، نقوم بإنشاء ملف act2.xml :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act2CheckBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Act2 checkbox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act2ColorButton&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Change Text Color&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>والنشاط الثاني يقوم بعرض Check Box وزر خاص بتغيير لون النص. نقوم بوضع الكود التالي في Act2.java:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.Color</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.CheckBox</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act2 <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> CheckBox checkbox <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>CheckBox<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act2CheckBox</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> changeButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act2ColorButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
changeButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
changeColor<span style="color: #009900;">&#40;</span>checkbox<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> changeColor<span style="color: #009900;">&#40;</span>CheckBox checkbox<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
checkbox.<span style="color: #006633;">setTextColor</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Color</span>.<span style="color: #006633;">RED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size: small"><br
/> </span></div><p>نعود الآن الى ملف ArdroidMultiActs.java لنضيف ما يلي لجملة ال Switch:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>ونقوم الآن بكتابة الدالتين showAct1 و showAct2. بداية، دعوني أصحح أحد المفاهيم التي كنت قد مررت عليها وهو مفهوم النوايا Intents. كنت قد ذكرت التالي:</p><p><span
style="font-family: Tahoma, sans-serif;line-height: 18px;font-size: 12px;color: #404040"><em><strong>&#8220;</strong>النوايا Intents بكل بساطة هي وسيلة لتمرير المعلومات من نشاط لآخر وبكلمات أخرى، تمرير ما ينوي فعله المبرمج بين الأنشطة. ولكنها تستخدم فقط في حالة وددنا استخدام نشاط خارج التطبيق الذي نعمل عليه. مثلا، اذا أراد المبرمج من تطبيقه أن يأخذ كلمة معينة من المستخدم ليبحث عنها بين ملفات النظام فإنه سيقوم بتصميم نشاط تحتوي واجهته على حقل نصي يمكن للمستخدم الكتابة فيها، وما يتم ادخاله يتم تمريره الى نظام الأندرويد تحت نية عمل بحث في ملفات النظام (وال Intent اسمه في هذه الحالة: SEARCH_ACTION) الذي يستقبل الطلب ويفهم النية\المعلومة المرغوب تحقيقها ويستدعي بدوره نشاط البحث Search Activity. نلاحظ أن النية تم تمريرها الى نشاط خارج التطبيق، وهو نشاط يقوم عليه نظام التشغيل. بالنسبة للأنشطة التي ذكرتها في معرض حديثي عن تطبيق الرسائل النصية، فهي أنشطة داخل التطبيق الواحد ولا يتم استخدام مفهوم النوايا Intents عليها (سنرى كيفية التعامل معها في الدرس القادم).<strong>&#8220;</strong></em></span></p><p>وهذا غير صحيح بشكل كامل حقيقة. النوايا يمكن استخدامها داخل التطبيق الواحد، ويتم استدعاء الأنشطة المختلفة باستخدام هذا المفهوم، ولكن الذي كنت أقصده بما ذكرت في الأعلى هو عدم امكانية استخدام النوايا المعرفة مسبقا ك SEARCH_ACTION وغيرها لاستدعاء نشاط داخلي، بل يجب علينا تعريف نوايا خاصة بتطبيقنا. وهذا ما سنقوم به في داخل الدالتين أعلاه على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act1.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act2.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>يصبح ملف ArdroidMultiActs.java كاملا:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidMultiActs <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act1.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act2.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>يبقى لدينا إضافة ما يسمى بفلتر النوايا Intents Filter وهو عبارة عن كود XML يتم وضعه في ArdroidMultiActs Manifest ومهمته تمرير النوايا الى لنشاط المقترن بها وتمييزها عن الآخرين بشكل صحيح. نقوم بإضافة ما يلي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>ليصبح الملف كاملا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;android.programming.series.ArdroidMultiActs&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionCode</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionName</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">android:icon</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.ArdroidMultiActs&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-sdk</span> <span style="color: #000066;">android:minSdkVersion</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>نقوم بتشغيل التطبيق لنحصل على:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.18-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1019  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.18-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.53-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1020  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.53-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.27.15-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1021  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.27.15-PM-203x300.png" alt="" width="203" height="300" /></a></p><p>الدرس القادم سيكون عبارة عن عدد من الأمثلة المتنوعة التي سأختارها من هنا وهناك وأعرضها عليكم.</p><p>تحياتي لكم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/18/android-programming-series-l4/feed/</wfw:commentRss> <slash:comments>15</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/Android-SS1.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الثالث</title><link>http://ardroid.com/2010/01/12/android-programming-series-l3/</link> <comments>http://ardroid.com/2010/01/12/android-programming-series-l3/#comments</comments> <pubDate>Tue, 12 Jan 2010 07:55:18 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category><guid
isPermaLink="false">http://ardroid.com/?p=913</guid> <description><![CDATA[أهلا بمحبي الأندرويد في الدرس الماضي، قمنا بتشغيل الأمثلة التي تأتي مع الحزمة البرمجية. كما قمنا باستعراض دورة حياة تطبيق الأندرويد Software Development Life Cycle SDLC وانتهينا بالتعرف على الملفات المكونة لنظام الأندرويد وبرمجة تطبيق أهلا بالعالم. في درسنا الثالث، سنقوم بما يلي: ١- شرح طريقة عرض النص بشكل مغاير لما قمنا به في الدرس&#8230; <a
href="http://ardroid.com/2010/01/12/android-programming-series-l3/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="173" height="130" src="http://ardroid.com/wp-content/uploads/2010/01/imageviewar.png" class="attachment-large" alt="imageviewar" title="imageviewar" /><p>أهلا بمحبي الأندرويد <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>في الدرس الماضي، قمنا بتشغيل الأمثلة التي تأتي مع الحزمة البرمجية. كما قمنا باستعراض دورة حياة تطبيق الأندرويد Software Development Life Cycle SDLC وانتهينا بالتعرف على الملفات المكونة لنظام الأندرويد وبرمجة تطبيق أهلا بالعالم.</p><p>في درسنا الثالث، سنقوم بما يلي:</p><p><strong>١- شرح طريقة عرض النص بشكل مغاير لما قمنا به في الدرس الماضي.</strong></p><p><strong>٢- شرح طريقة إظهار صورة في التطبيق.</strong></p><p><strong>٣- شرح مفهوم النوايا Intents وبرمجة تطبيق يقوم بالاتصال على رقم يدخله المستخدم.</strong></p><p>لنبدأ !</p><p><strong>١- طريقة عرض النص.</strong></p><p>تذكرون أننا في الدرس الثاني قمنا بتغيير النص الذي أردنا إظهاره عن طريق ملف ال main.xml، كما في الصورة</p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.08.13-PM.png" rel="lightbox[913]"><img
class="size-medium wp-image-762  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.08.13-PM-300x47.png" alt="" width="300" height="47" /></a></p><p>ما نود الآن عمله هو إيضاح إمكانية عدم استعمال الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>والتي تقوم بعرض الواجهة التي حُددت معالمها ومحتوياتها باستخدام ملف main.xml. الهدف من عرض هذه النقطة هو التركيز على أهمية ملفات ال XML التي تسهل الأداء بشكل أكبر وأكثر فعالية.</p><p>ببساطة (باستخدام ملفات الدرس السابق) قم بمسح:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;">TextView
&nbsp;
android:layout_width=&quot;fill_parent&quot;
&nbsp;
android:layout_height=&quot;wrap_content&quot;
&nbsp;
android:text=&quot;@string/hello&quot;</pre></div></div><p>من main.xml ليصبح محتوى الملف بعدها:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif; color: #009292; font-size: small;"><br
/> </span></div><p>الآن في ملف HelloWorldArdroid.java قم باستدعاء المكتبة التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.TextView</span><span style="color: #339933;">;</span></pre></div></div><p>عبر هذه المكتبة، سنقوم باستعمال عنصر الواجهة النصية TextView بتعريف كائن Object داخل دالة onCreate على النحو التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">TextView HelloWorldText <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextView<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>لا يخفى على مبرمج الجافا الغرض من تمرير this عند استدعاء الدوال البرمجية في الجافا Functions/Methods. وفي هذه الحالة، this تستخدم للدلالة على أن الكائن المنشأ ينتمي للسياق البرمجي الحالي المتمثل بمجموعة السياق  Context Class والتي هي أحد أسلاف Ancestors المجموعة التي نعمل عليها حاليا (بتتبع التسلسل الهرمي نجد أن: HelloWorldArdroid <em>extends</em> Activity <em>extends</em> ApplicationContext <em>extends</em> Context).</p><p>الآن نقوم باستعمال الدالة setText لتعيين النص الذي نريد الكائن HelloWorldText أن يحمله:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">HelloWorldText.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello World&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>والآن نطلب من دالة setContentView أن تعرض الكائن على النحو التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">setContentView<span style="color: #009900;">&#40;</span>HelloWorldText<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>المحتوى النهائي للملف:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android_programming_series.HelloWorldArdroid</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.TextView</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorldArdroid <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
TextView HelloWorldText <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextView<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
HelloWorldText.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello World&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>HelloWorldText<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-1.20.54-PM.png" rel="lightbox[913]"><img
class="size-medium wp-image-918  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-1.20.54-PM-300x212.png" alt="" width="300" height="212" /></a></p><p>مشكلة هذه الطريقة تكمن في أنها تعرض عنصرا واحدا فقط (أو واجهة واحدة كالواجهة النصية أعلاه). لذلك سنقوم من الآن وصاعدا باستخدام ملف XML لإضافة العناصر والواجهات بمختلف أنواعها.</p><p><strong>٢- شرح طريقة إظهار صورة في التطبيق.</strong></p><p>يمكنكم استكمال العمل على المشروع الحالي أو انشاء مشروع جديد تحت أي مسمى، مثلا HelloWorldImage. علينا إنشاء صورة لنقوم بعرضها. اخترت الصورة التالية</p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/imageviewar.png" rel="lightbox[913]"><img
class="size-full wp-image-926  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/imageviewar.png" alt="" width="173" height="130" /></a></p><p>وقمت بحفظها تحت مجلد drawable_hdpi.</p><p>نقوم بفتح ملف الmain.xml ونضيف بداية العنصر الخاص بالواجهة الرسومية (صورة) وهو &lt;ImageView. ثم نقوم بعدها بإضافة الخصائص التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;">android:id=&quot;@+id/imageviewar&quot;
&nbsp;
android:layout_width=&quot;fill_parent&quot;
&nbsp;
android:layout_height=&quot;wrap_content&quot;
&nbsp;
android:src=&quot;@drawable/imageviewar&quot;</pre></div></div><p>تقوم الخاصية الأولى بتوليد رقم خاصID بالعنصر المسمى imageviewar (حيث يتم التعامل مع الواجهات Viewsعبر أرقامها الخاصة). تتحكم الخاصيتان اللاحقتان بطول وعرض الصورة. أما الخاصية الأخيرة فعن طريقها يتم تحديد مصدر الصورة (وهو تحت مجلد drawable بغض النظر عن تفرعات المجلد).</p><p>ملف ال XML:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ImageView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/imageviewar&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:src</span>=<span style="color: #ff0000;">&quot;@drawable/imageviewar&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif; color: #009292; font-size: small;"><br
/> </span></div><div>الملف المصدري هو كالتالي:</div><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android_programmers_guide.HelloWorldImage</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorldImage <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div><p>التطبيق في الجهاز الافتراضي:</p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-2.07.15-PM.png" rel="lightbox[913]"><img
class="size-medium wp-image-919  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-2.07.15-PM-300x210.png" alt="" width="300" height="210" /></a></p><p><strong>٣- شرح مفهوم النوايا Intents وبرمجة تطبيق يقوم بالاتصال على رقم يدخله المستخدم.</strong></p><p>قبل تعريف ال Intents، علينا التفريق بين مفهومين: التطبيق Application و النشاط Activity. التطبيق هو عبارة عن نشاط واحد أو أكثر. في تطبيق الرسائل النصية مثلا، كل اختيار يمثل نشاطا. بمعنى، خيار كتابة الرسائل هو نشاط، وخيار عرض الرسائل هو نشاط مختلف وهكذا.</p><p>النوايا Intents بكل بساطة هي وسيلة لتمرير المعلومات من نشاط لآخر وبكلمات أخرى، تمرير ما ينوي فعله المبرمج بين الأنشطة. ولكنها تستخدم فقط في حالة وددنا استخدام نشاط خارج التطبيق الذي نعمل عليه. مثلا، اذا أراد المبرمج من تطبيقه أن يأخذ كلمة معينة من المستخدم ليبحث عنها بين ملفات النظام فإنه سيقوم بتصميم نشاط تحتوي واجهته على حقل نصي يمكن للمستخدم الكتابة فيها، وما يتم ادخاله يتم تمريره الى نظام الأندرويد تحت نية عمل بحث في ملفات النظام (وال Intent اسمه في هذه الحالة: SEARCH_ACTION) الذي يستقبل الطلب ويفهم النية\المعلومة المرغوب تحقيقها ويستدعي بدوره نشاط البحث Search Activity. نلاحظ أن النية تم تمريرها الى نشاط خارج التطبيق، وهو نشاط يقوم عليه نظام التشغيل. بالنسبة للأنشطة التي ذكرتها في معرض حديثي عن تطبيق الرسائل النصية، فهي أنشطة داخل التطبيق الواحد ولا يتم استخدام مفهوم النوايا Intents عليها (سنرى كيفية التعامل معها في الدرس القادم).</p><p>هناك نوعان من النوايا، نوايا النشاط Activity Intents و النوايا واسعة الانتشار Broadcast Intents. النوع الأول هو ما قمنا بشرحه. بينما النوع الثاني فهو نوع عكسي نوعا ما. النوع الثاني عبارة عن رسائل يرسلها نظام التشغيل للأنشطة العاملة التي يمكنها التفاعل مع هذه الرسائل بحسب وظيفتها. مثلا نجد أن النية المسماة CAMERA_BUTTON_ACTION يتم اطلاقه عند تشغيل الكاميرا. اضغط هنا للاطلاع على ال Intents المتاحة لكل نوع: <a
href="http://www.openintents.org/en/node/35">Activity Action Intents</a> ، <a
href="http://developer.android.com/guide/topics/intents/intents-filters.html">Broadcast Intents</a>.</p><p>ستتضح الصورة بشكل أكبر في نهاية هذا الدرس.</p><p>ما سنقوم به هو التالي: سنقوم بكتابة تطبيق يحتوي على حقل نصي\رقمي يتيح للمستخدم ادخال رقم ويوجد في أسفل الحقل زر بمجرد الضغط عليه، يتم الاتصال بالرقم المدخل.</p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-4.26.48-PM.png" rel="lightbox[913]"><img
class="size-medium wp-image-920  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-4.26.48-PM-228x300.png" alt="" width="228" height="300" /></a></p><p>سنبدأ بملف ال main.xml: (أفترض الآن أنكم تفهمون محتواه دون الحاجة الى شرح)</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/textLabel&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Enter Number to Dial:&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;EditText</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/phoneNumber&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/callButton&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Call&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif; color: #009292; font-size: small;"><br
/> </span></div><p>تم شرح الغرض من عنصر TextView من قبل. بالنسبة لعنصر EditText فهو يعني الحقل النصي القابل للتغيير (الحقل الذي سيتم ادخال الرقم فيه). عنصر الزر Button وهو الزر الذي بضغطه سيتم الاتصال.</p><p>بالنسبة لملف ArdroidCaller.java نقوم بداية باستدعاء المكتبات التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.net.Uri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span></pre></div></div><p>تتضح نسبيا مهمة كل مكتبة بمجرد قراءة اسمها باستثناء الرابعة والأخيرة اللتان سنرى الغرض من استدعائهما قريبا.</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidCaller <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> EditText phoneNumber <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">phoneNumber</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> callButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">callButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif;"><span
style="font-size: small;"><br
/> </span></span></div><p>نلاحظ في السطرين الأخيرين كيفية استدعاء المؤشر الذي يشير الى الرقم ID الخاص بالعنصر. لاحظوا أننا قمنا بعمل Downcast في كلا السطرين لأن مخرج الدالة findViewById هو من نوع View.<br
/> أعتقد أن العديدين ممن برمجوا بلغة الجافا كانوا قد مروا على برمجة واجهات المستخدم User Interface وتحديدا برمجة الأزرار Buttons واستخدموا أحد مفاهيم برمجة الجافا وهو مبدأ المجموعات المجهولة Anonymous Classes الذي يستخدم عادة في كتابة setOnClickListener المسؤول عن متابعة الزر وتنفيذ عدد من الأوامر عند ضغط الزر من قبل المستخدم.</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span></pre></div></div><p>المفترض أن نقوم باستدعاء ال Intent المسؤول عن الاتصال ويسمى ACTION_CALL وأن نقوم بدمجه مع الرقم المدخل وارساله الى نظام التشغيل. وهذا ما يحصل باستخدام:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>ثم نطلب من نظام التشغيل إطلاق النشاط الخاص بعمل المكالمة:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>لاحظ أن FLAG_ACTIVITY_NEW_TASK تعني اطلاق النشاط كمهمة جديدة، وهناك في الواقع عدة أوامر توضح الكيفية التي يريد المبرمج عبرها اطلاق النشاط، فمثلا يوجد: FLAG_MULTIPLE_TASK_LAUNCH التي تقوم بإطلاق النشاط حتى لو أنه يعمل في الأصل (نسخة ثانية من النشاط)، وغيرها.<br
/> في النهاية سنطلب من النظام تشغيل ال Intent عبر:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>اذا، يصبح الملف في النهاية كما يلي:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android_programming_series.ArdroidCaller</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.net.Uri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidCaller  <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> EditText phoneNumber <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">phoneNumber</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> callButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">callButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div><p>قبل تشغيل البرنامج، بقي لدينا مسألة صغيرة. هل لاحظت عند تنصيبك للتطبيقات على جهازك أنك تُسأل عما اذا كنت تصرح للتطبيق باستخدام الانترنت مثلا أو الاطلاع على رسائلك وغيرها؟ هذه هي الأذونات Permissions المرتبطة بالتطبيقات التي يجب أن توافق عيها ليعمل البرنامج بشكل صحيح.<br
/> ما قمنا به في تطبيقنا لا يختلف حالا عن باقي التطبيقات، فاستخدام خاصية الاتصال تحتاج اذن المستخدم. لذلك، في ملف الاعدادات العامة ArdroidCaller Manifest.xml ، نضيف سطر ال XML التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-permission</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.permission.CALL_PHONE&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/uses-permission<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif; color: #009292; font-size: small;"><br
/> </span></div><p>ليصبح ملف  ArdroidCaller Manifest.xml كاملا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;android_programming_guide.ArdroidCaller&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionCode</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionName</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">android:icon</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.ArdroidCaller&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-sdk</span> <span style="color: #000066;">android:minSdkVersion</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-permission</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.permission.CALL_PHONE&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/uses-permission<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>للاطلاع على معظم الأذونات الموجودة <a
href="http://www.chinaup.org/docs/reference/android/Manifest.permission.html">اضغط هنا</a>.<br
/> الآن نشغل التطبيق على الجهاز الافتراضي لنرى التالي:<br
/> <a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-6.26.51-PM.png" rel="lightbox[913]"></a></p><p
style="text-align: center;"><img
class="size-medium wp-image-921  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-6.26.51-PM-300x211.png" alt="" width="300" height="211" /></p><p
style="text-align: right;"><p
style="text-align: right;">وبالضغط على زر الاتصال Call يظهر:</p><p
style="text-align: center;"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-6.27.12-PM.png" rel="lightbox[913]"><img
class="size-medium wp-image-922  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-11-at-6.27.12-PM-300x211.png" alt="" width="300" height="211" /></a></p><p
style="text-align: right;">أعتقد أن هذا الدرس كان طويلا بعض الشيء <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
style="text-align: right;">الدروس القادمة تعتمد على المفاهيم التي طرحت في هذا الدرس، لذلك أدعوكم للتعمق في فهم جميع الخطوات التي وردت، واستغلال خاصية التعليق للنقاش والحوار.</p><p
style="text-align: right;">درسنا القادم سيكون عن كيفية التأكد من المدخلات التي يدخلها المستخدم، فكما تلاحظون في التطبيق أعلاه، قد يدخل المستخدم أحرفا ورموزا تجعل عملية الاتصال خاطئة. كما أننا سنتعلم طريقة استغلال زر القائمة Menu في عملية التنقل بين الأنشطة المختلفة الموجودة في التطبيق الواحد (اذا سنتعلم أيضا كيفية عمل تطبيق متعدد الأنشطة).</p><p
style="text-align: right;"><p
style="text-align: right;">بالتوفيق يا أصدقاء !</p><p
style="text-align: right;"> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/12/android-programming-series-l3/feed/</wfw:commentRss> <slash:comments>22</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/android.jpg" /> </item> <item><title>غوغل تعلن عن الفائزين في مسابقة مطوري أندرويد الثانية</title><link>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/</link> <comments>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/#comments</comments> <pubDate>Wed, 02 Dec 2009 00:07:55 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Downloads]]></category> <category><![CDATA[Games]]></category> <category><![CDATA[Video Games]]></category> <category><![CDATA[Virtual Console]]></category> <category><![CDATA[Word Games]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[مسابقة]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=181</guid> <description><![CDATA[أعلنت غوغل يوم البارحة عن الفائزين في مسابقة مطوري أندرويد الثانية حيث تنافس المتسابقون ضمن عشر فئات تصل جائزتها الكبرى إلى مئة ألف دولار (يتوجب التنبيه أن ليس كل التطبيقات المذكورة متوافرة الآن في سوق أندرويد ولكن يمكن تحميلها مباشرة): الفائزون الثلاثة الأوائل عن جميع الفئات: SweetDreams SweetDreams هو أداة ثورية من شأنها أن تسمح&#8230; <a
href="http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2009/12/adc2.png" class="attachment-large" alt="adc2" title="adc2" /><p>أعلنت غوغل يوم البارحة عن الفائزين في <a
href="http://code.google.com/android/adc/gallery_winners.html" target="_blank">مسابقة مطوري أندرويد الثانية</a> حيث تنافس المتسابقون ضمن عشر فئات تصل جائزتها الكبرى إلى مئة ألف دولار (يتوجب التنبيه أن ليس كل التطبيقات المذكورة متوافرة الآن في سوق أندرويد ولكن يمكن تحميلها مباشرة):<span
id="more-181"></span></p><p><span
style="color: #008080"><strong>الفائزون الثلاثة الأوائل عن جميع الفئات:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/sweetdreams.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SweetDreams</span></strong></p><p><span
dir="rtl">SweetDreams هو أداة   ثورية من شأنها أن تسمح لك بأن تذهب إلى النوم دون أن تقلق حول تغيير   إعدادات الهاتف من أجل تجنب المكالمات غير المرحب بها في وقت متأخر من   الليل.</span> <span
dir="rtl"> يمكنك  استخدام فترات الخمول تلك  لتوفير طاقة البطارية كذلك، وبطبيعة الحال   يمكنها ضبط إعدادات الشبكة اللاسلكية والبلوتوث ومستوى الرنين.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/whatthedoodle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">What The Doodle!?</span></strong></p><p><span
dir="rtl">&#8216;WTD!؟</span> <span
dir="rtl">هي لعبة جماعية في  الوقت الحقيقي  على الانترنت حيث يحاول لاعب واحد رسم عبارة معينة بينما  يحاول الآخرون  تخمينها.</span> <span
dir="rtl">ومن  مزاياها اللعب ضمن  فرق ولوحة نتائج عالمية ورسومات شخصية للوجوه وتعرف  تلقائي على الصوت  وغيرها! </span><span
dir="rtl">الرسم  في الوقت الحقيقي؟!</span> <span
dir="rtl"> مبنية على الأداء  المتفوق، ستلاحظ  السحر من أول خط ترسمه!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wavesecure.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">WaveSecure</span></strong></p><p><span
dir="rtl">WaveSecure هو حل أمني   متكامل للأجهزة النقالة حيث يحمي الجهاز والبيانات والخصوصية.</span> <span
dir="rtl">1.</span> <span
dir="rtl">تتبع موقع  هاتفك وهوية الشخص الذي  يستخدمه 2.</span> <span
dir="rtl">أقفل  هاتفك عن بعد، مما  يجعله عديم القيمة للص 3.</span> <span
dir="rtl">إنشاء نسخة احتياطية  لجميع  البيانات الخاصة بك 4.</span> <span
dir="rtl">محو البيانات الخاصة بك عن  بعد 5.</span> <span
dir="rtl">استعادة  البيانات. </span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة التعليم والمراجع:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/plinkart.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Plink Art</span></strong></p><p><span
dir="rtl">Plink Art هو تطبيق  للتعرف على واكتشاف ومشاركة الأعمال الفنية.</span> <span
dir="rtl">التقط صورة للوحة،  وسيقوم Plink Art بمحاولة التعرف عليها.</span> <span
dir="rtl">يمكنك أيضا تصفح قاعدة  البيانات المليئة بالأعمال الفنية ومشاركة الاكتشافات مع الأصدقاء.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wordpuzzle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Word Puzzle</span></strong></p><p><span
dir="rtl">Word Puzzle مصممة  لتوفير وسيلة ممتعة لتعلم الكلمات الإنجليزية الأساسية للأطفال في مرحلة  الحضانة.</span> <span
dir="rtl">يمكن  للأطفال دراسة التهجئة واللفظ باستخدام بطاقات الذاكرة وحفظ إنجازاتهم مع  Word Puzzle.</span> <span
dir="rtl">يوفر البرنامج طرقاً بصرية وصوتية للتفاعل معه مثيرة  للاهتمام مما يساعد الاطفال على الاستمرار في التعلم.</span> <span
dir="rtl">دع الأطفال يمرحون مع  أندرويد.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/celeste.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Celeste</span></strong></p><p><span
dir="rtl">برنامج يعتمد على تقنية  الواقع المعزز رقمياً حيث يمكنك عرض مواقع ومسارات الشمس والقمر والكواكب  السماء باستخدام الكاميرا.</span> <span
dir="rtl">يمكنك التنقل عبر السماء واختيار الأجرام السماوية  لعرض معلومات مثيرة للاهتمام حول نظامنا الشمسي.</span> <span
dir="rtl">حدد أين على الأفق تشرق  الشمس وتغيب بالضبط.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الترفيه:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/worldofphoto.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">A World of Photo</span></strong></p><p><span
dir="rtl">تطبيق مستوحى من لعبة  &#8220;تدوير الزجاجة&#8221; التقليدية، A World of Photo (عالم من الصور) هي لعبة  جغرافية متعددة اللاعبين في جميع أنحاء العالم مع لمسة اجتماعية.</span> <span
dir="rtl">يقوم اللاعبون بتدوير  هواتفهم فيتلقون صورة من أي مكان في العالم يشير إليه رأس الجهاز.</span> <span
dir="rtl">للحصول على أفضل تجربة  لعب، يفضل السماح بتشغيل التطبيق في الخلفية.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/songdna.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SongDNA</span></strong></p><p><span
dir="rtl">بحاجة إلى أي معلومات  عن أغنية ما؟</span> <span
dir="rtl">تتمرن لحفلة كاراوكي كبيرة؟</span> <span
dir="rtl">هناك مسابقة حول  الموسيقى يوم الغد؟</span> <span
dir="rtl">تسمح لك أداة SongDNA بالبحث بسرعة عن المعلومات  التفصيلية حول الأغنية المفضلة لديك.</span> <span
dir="rtl">وتتضمن كلمات الأغاني،  ولمحة عن حياة الفنان وموقعه على الإنترنت، مرتبتها بين أفضل الأغاني،  والفيديو كليب.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/solo.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Solo</span></strong></p><p><span
dir="rtl">Solo هي غيتار رائع سهل  الاستخدام غني المزايا لهاتفك.</span> <span
dir="rtl">تطبيق لابد منه لجميع عشاق الغيتار!</span> <span
dir="rtl">وتشمل المزايا- مكتبة  ضخمة للأوتار )chords) تضم أكثر من  380 وتر ومخططاً، حفظ وتحميل مخططات  الأوتار، العزف جنباً إلى جنب مع الموسيقى في هاتفك، تراكب الموسيقى وكلمات  الأغاني من على شبكة الانترنت.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الألعاب التقليدية وألعاب الإثارة:</strong></span></p><table
border="0" cellspacing="3" cellpadding="3"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/speedforge3d.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Speed Forge 3D</span></strong></p><p><span
dir="rtl">Speed Forge: مركبات  حوامة ثقيلة، تستخدم عادة لأغراض التعدين يتم الآن استخدامها في سباقات  غير شرعية تنظم في مصانع مهجورة وأزقة مظلمة.</span> <span
dir="rtl">تخدم المتفجرات التي  كانت تستخدم في هذه الآلات لسحق الصخور الآن غرضاً مختلفاً&#8230;</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/graviturn.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Graviturn</span></strong></p><p><span
dir="rtl">فم بإمالة هاتفك لتحرك  الدوائر الحمراء لخارج الشاشة مع الحفاظ على الدوائر الخضراء.</span> <span
dir="rtl">مستويات لا حصر لها  تتراوح من السهل جداُ إلى شبه المستحيل تقريباً.</span> <span
dir="rtl">قارن أداءك مع لاعبين  آخرين بعد كل مستوى (أعلى الدرجات والإحصاءات متوفرة على شبكة الإنترنت).</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/motoxmayhem.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Moto X Mayhem</span></strong></p><p><span
dir="rtl">اقفز وانحن وسابق عبر  سبعة مستويات من الإثارة على دراجة نارية!</span> <span
dir="rtl">انكفئ إلى الأمام  والخلف على دراجة نارية أثناء تسلق التلال وحلق في الهواء من خلال استخدام  تكنولوجيا حساس ميلان الجهاز accelorometer.</span> <span
dir="rtl">لاحظ المشاهد الواقعية  حيث تنضغظ نوابض الدراجة عند اصطدامك بالأرض بعد القفزات!</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الألعاب العادية والأحاجي:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/whatthedoodle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">What the Doodle!?</span></strong></p><p><span
dir="rtl">&#8216;WTD!؟</span> <span
dir="rtl">هي لعبة جماعية في  الوقت الحقيقي على الانترنت حيث يحاول لاعب واحد رسم عبارة معينة بينما  يحاول الآخرون تخمينها.</span> <span
dir="rtl">ومن مزاياها اللعب ضمن فرق ولوحة نتائج عالمية  ورسومات شخصية للوجوه وتعرف تلقائي على الصوت وغيرها!</span> <span
dir="rtl">الرسم في الوقت  الحقيقي؟!</span> <span
dir="rtl">مبنية على الأداء المتفوق، ستلاحظ السحر من أول خط  ترسمه!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/totemo.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Totemo</span></strong></p><p><span
dir="rtl">أطلق الأرواح.</span> <span
dir="rtl">اكسر اللعنة.</span> <span
dir="rtl">اكشف السر المخفي بين  العوالم في لعبة لغز فريدة من نوعها.</span> <span
dir="rtl">اعصر دماغك وحاول أن  تسترخي أثناء محاولتك حل أكثر من 60 لغزاً يتعمد على المنطق.</span> <span
dir="rtl">العب في وضع البقاء على  قيد الحياة لتحدٍ إضافي واكتب اسمك في على قائمة أفضل اللاعبين على  الانترنت. http://hexage.net</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/mazeness.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Mazeness</span></strong></p><p><span
dir="rtl">الهدف من اللعبة بسيط  إلى حدٍّ ما &#8212; كل ما تحتاجه هو إحضار جميع الكرات (تصل إلى 4 في المرحلة!)</span> <span
dir="rtl">إلى أهدافها في الوقت  نفسه باستخدام الحواجز والمثبتات والنواقل.</span> <span
dir="rtl">قد تبدو بسيطة في  البداية، ولكنها ليست بهذه السهولة.</span> <span
dir="rtl">تتزايد الصعوبة باضطراد  من مستوى إلى آخر.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة أسلوب الحياة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/sweetdreams.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SweetDreams</span></strong></p><p><span
dir="rtl">SweetDreams هي أداة  ثورية من شأنها أن تسمح لك بأن تذهب إلى النوم دون أن تقلق حول تغيير  إعدادات الهاتف من أجل تجنب المكالمات غير المرحب بها في وقت متأخر من  الليل.</span> <span
dir="rtl">يمكنك  استخدام فترات الخمول تلك لتوفير طاقة البطارية كذلك، وبطبيعة الحال يمكنها  ضبط إعدادات الشبكة اللاسلكية والبلوتوث ومستوى الرنين.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spectrek.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SpecTrek</span></strong></p><p><span
dir="rtl">حسن لياقتك البدنية مع  لعبة اصطياد الأشباح الثورية التي تعتمد على تقنية الواقع المعزز  افتراضياً.</span> <span
dir="rtl">قم بالمشي أو الركض باستخدام نظام تحديد المواقع  وكاميرا الهاتف للعثور على الأشباح الافتراضية واصطيادها.</span> <span
dir="rtl">لك تجربة مغامرة جديدة  مع كل استخدام للعبة SpecTrekking.</span> <span
dir="rtl">اللعبة تقدم الإحصاءات  والجوائز والألقاب والسجلات، والأهم من كل ذلك كله الكثير من المرح!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/foxyring.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">FoxyRing</span></strong></p><p><span
dir="rtl">FoxyRing يجعل هاتفك  أكثر ذكاء من خلال تحليل الضوضاء المحيطة بك وضبط مستوى الرنين.</span> <span
dir="rtl">أيضا : &#8211; ساعات النوم  لجعل الهاتف صامتاً خلال الليل. &#8211; تحديد الرنات اعتماداً على الموقع  الجغرافي، يمكنك ضبط الجهاز إلى الرجاج فقط في مكان عملك &#8211; أداة لضبط  الهاتف على الصامت لفترة موقوتة. &#8211; واجهةاستخدام رائعة.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الوسائط المتعددة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/buzzdeck.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Buzz Deck</span></strong></p><p><span
dir="rtl">BuzzDeck هو طريقة سريعة  وسهلة للحصول على كل محتوى الويب الأكثر أهمية بالنسبة لك.</span> <span
dir="rtl">تصفح مواضيع الأخبار  المفضلة لديك يومياً.</span> <span
dir="rtl">واحصل على تحديثات من  تويتر وفيسبوك جنباً إلى جنب.</span> <span
dir="rtl">BuzzDeck يتعلم ما تحب،  ويوصي بأشياء رائعة جديدة.</span> <span
dir="rtl">بسيط وأنيق وسريع.</span> <span
dir="rtl">ملحوظة: لا  يوجد وضع أفقي بعد. http://mippin.com/buzzdeck</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spbtv.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SPB TV</span></strong></p><p><span
dir="rtl">SPB TV هو حل عملي جداُ  لمشاهدة التلفاز عبر الآي بي (IP-TV)، مصمم خصيصاً للعمل  على الأجهزة  النقالة.</span> <span
dir="rtl">SPB TV يوفر للمستخدمين  الكثير من القنوات في لغات متعددة مع مزايا وإعدادات سهلة الاستخدام.</span> <span
dir="rtl">لا توجد رسوم  اشتراك شهرية!</span> <span
dir="rtl">يتطلب شبكة 3G موثوق  بها أو شبكة واي فاي لضمان تجربة مشاهدة جيدة.</span> <span
dir="rtl">يمكنك تجربة البرنامج  لمدة 60 يوماً قبل أن تقرر شراءه.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/fxcamera.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">FxCamera</span></strong></p><p><span
dir="rtl">FxCamera تمكنك من  التقاط صور مع تأثيرات متنوعة. هذا التطبيق يحتاج إلى بطاقة ذاكرة.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الإنتاجية والأدوات:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wavesecure.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">WaveSecure</span></strong></p><p><span
dir="rtl">WaveSecure هو حل أمني  متكامل للأجهزة النقالة حيث يحمي الجهاز والبيانات والخصوصية.</span> <span
dir="rtl">1.</span> <span
dir="rtl">تتبع موقع  هاتفك وهوية الشخص الذي يستخدمه 2.</span> <span
dir="rtl">أقفل هاتفك عن بعد، مما  يجعله عديم القيمة للص 3.</span> <span
dir="rtl">إنشاء نسخة احتياطية  لجميع البيانات الخاصة بك 4.</span> <span
dir="rtl">محو البيانات الخاصة بك عن  بعد 5.</span><span
dir="rtl">استعادة  البيانات.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/hoccer.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Hoccer</span></strong></p><p><span
dir="rtl">Hoccer هو تطبيق مخصص  لتبادل البيانات بشكل لحظي ad-hoc. </span><span
dir="rtl">استخدم أصابعك &#8220;لرمي&#8221;  البيانات عبر الهواء حتى يتمكن المتلقي من &#8220;التقاطها&#8221;.</span> <span
dir="rtl">ليست هناك حاجة مسبقة   لتبادل معلومات الاتصال.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/tasker.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Tasker</span></strong></p><p><span
dir="rtl">Tasker يسمح لك بربط أي  مهمة (مجموعة التصرفات) إلى سياقات معينة (التطبيق، والوقت، واليوم،  والموقع، والأداة widget) حيث ينبغي أن تنفذ.</span> <span
dir="rtl">إرسال رسالة نصية قصيرة  الساعة 3:15 يوم الإثنين ، تحديد إعدادات خاصة بكل تطبيق، تعيين زر  الكاميرا ليفتح قائمة ما، تشغيل مشغل الموسيقى بشكل تلقائي عند إدخال  سماعات الأذنين، أخذ صور على فترات زمنية طويلة (timelapse)، تشفير فوري، و  القائمة لا تنتهي!</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الشبكات الإجتماعية:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/cereal.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Ce:real &#8211; Everyday  trends</span></strong></p><p><span
dir="rtl">Ce:real، ماذا يحدث في  هذا العالم؟</span> <span
dir="rtl">هل تشعر بالفضول حول  العالم الحقيقي؟</span> <span
dir="rtl">ماذا عن القطب الشمالي  أو زاوية من أفريقيا؟</span> <span
dir="rtl">أيضا ، يمكن أن تكون  منطقتك.</span> <span
dir="rtl">يقدم  هذا البرنامج القصص المصورة الجديدة مع المواضيع الرائجة على تويتر بسرعة  البرق.</span> <span
dir="rtl">استمتع  بالملايين من مجريات الأحداث في العالم الحقيقي، ويمكنك المشاركة بها  كذلك.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/socialmuse.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SocialMuse</span></strong></p><p><span
dir="rtl">تعرف على ما يستمع إليه  المستخدمون على الطرف الآخر من العالم!</span> <span
dir="rtl">اكتشف أشخاصاً لهم نفس  ذوفك الموسيقي، أو قم باستكشاف العالم من خلال الموسيقى فحسب.</span><span
dir="rtl"> </span><span
dir="rtl"> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spotmessage.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SpotMessage</span></strong></p><p><span
dir="rtl">SpotMessage هي أداة  للتواصل باستخدام نظام تحديد المواقع. أرسل رسالة تحدد موقعاً ما على خرائط  غوغل وسوف يتم إعلامك عندما يصل المتلقي يصل الى المكان المحدد.</span> <span
dir="rtl">SpotMsg له  العديد من الاستخدامات المختلفة؛ كمنبه لتذكيرك بمهمة ما في بقعة معينة أو  لإرسال رسالة مفاجئة لصديقك بمجرد وصوله إلى موقع معين.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة السفر:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/tripjournal.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Trip Journal</span></strong></p><p><span
dir="rtl">Trip Journal هو أفضل  أداة لتتبع رحلتك متوفرة للهواتف الذكية العاملة بنظام أندرويد</span> <span
dir="rtl">أثر إعجاب  أصدقائك من خلال إرسال التحديثات لهم في الوقت الحقيقي من الأماكن التي  تزورها.</span><span
dir="rtl"> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/inap.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">iNapiNap: Arrival  Alert</span></strong></p><p><span
dir="rtl">هل سبق لك أن أردت أن  تغفو قليلاً أثناء رحلة القطار ، أو أن تغط عينك لدقائق معدودة أثناء ركوب  الباص إلى العمل؟</span> <span
dir="rtl">كنت إما تأمل في أن  تستيقظ في الوقت المناسب حتى لا تفوتك المحطة، أو ضبط منبه لإيقاظ بشكل  مبكر جداً&#8230;</span> <span
dir="rtl">باستخدام نظام تحديد  المواقع على هاتفك سيتمكن هذا البرنامج من تحديد مكانك وإيقاظك عند اقترابك  من وجهتك!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/carlocator.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Car Locator</span></strong></p><p><span
dir="rtl">احفظ مكانك كلما ركنت  السيارة، وسيقوم البرنامج بإرشادك إليها في حال واجهتك صعوبة في ذلك. &#8212;  يشير باتجاه السيارة باستخدام نظام تحديد المواقع والبوصلة &#8212; وضع عرض  الرادار، وضع عرض الخريطة ، أو الإثنين معاً.</span> <span
dir="rtl"> تنتهي صلاحية النسخة  المجانية من البرنامج بعد 25 استخدام.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن الفئة المنوعة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/rhythmguitar.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Rhythm Guitar</span></span></strong></p><p><span><span
dir="rtl">يعزف الموسيقى مثل  غيتار ذي ستة أوتار حقيفي.</span></span> <span><span
dir="rtl">اعزف باستخدام جميع  تقنيات العزف التي تستخدمها في العزف على غيتار حقيقي، وغير الأغاني  لتتطابق مع مجال صوتك.</span></span> <span><span
dir="rtl">تطبيق عظيم لتأليف  الأغاني، والمساعدة على تعلم العزف وتعلم الأغاني الرائجة على الراديو، أو  حتى لتوصيله مع مكبرات صوت ودواسات.</span></span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/andrometer.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Andrometer</span></span></strong></p><p><span><span
dir="rtl">Andrometer يسمح لك  لقياس المسافة التقريبية التي تفصلك عن أي جسم يمكنك رؤيته.</span></span> <span><span
dir="rtl">يستخدم نظام تحديد  المواقع وحساس ميلان الجهاز accelorometer وحساس استشعار جيومغنطيسي.</span></span><span> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/caltonhillgpscaddy.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Calton Hill GPSCaddy</span></span></strong></p><p><span><span
dir="rtl">يسمح GPSCaddy للاعبي  الغولف برسم خريطة أي ملعب للجولف بسرعة وسهولة إما باستخدام نظام تحديد  المواقع أوفي المنزل باستخدام صور الأقمار الصناعية.</span></span> <span><span
dir="rtl">ثم عند اللعب فإنه  يستخدم نظام تحديد المواقع ليخبرهم عن تفاصيل المضمار (البعد عن  الحفرة،العوائق الرملية، الخ&#8230;)</span></span></td></tr></tbody></table><div
class="zemanta-pixie" style="margin-top: 10px;height: 15px"><img
class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/pixy.gif?x-id=eeb511e9-4688-444e-8b29-11e6c1b5a0ec" alt="" /><span
class="zem-script more-related pretty-attribution"></span></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/12/adc2.png" /> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)

Served from: ardroid.com @ 2012-02-11 05:17:18 -->
