App Inventor ListPicker and Page Navigation - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تهيئة محتوى ListPicker وفتح صفحات جديدة

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تشرح هذه الصفحة كيفية استخدام ListPicker (قائمة الخيارات) في App Inventor لإنشاء تطبيق يعرض معالم مدينة الرياض بلغتين مختلفتين (الإنجليزية والعربية).

يبدأ المحتوى بشرح كيفية تهيئة محتوى ListPicker بناءً على تفضيل اللغة المحدد (en أو ar) باستخدام حدث BeforePicking، حيث يتم تحميل قائمة المعالم المناسبة من المتغيرات العالمية riyadh_highlights_en أو riyadh_highlights_ar.

ثم ينتقل إلى شرح كيفية فتح صفحة جديدة لكل معلم بناءً على الاختيار من ListPicker، مع دعم اللغتين. يتم ذلك عن طريق إنشاء متغير selection (اختيار) وتعيينه إلى خاصية الاختيار في ListPicker ضمن حدث AfterPicking.

يحتوي المحتوى على رسوم توضيحية وشرح مرئي لواجهة MIT App Inventor، مما يساعد المتعلمين على فهم كيفية تنفيذ المنطق الشرطي وتهيئة المتغيرات في بيئة البرمجة المرئية.

📄 النص الكامل للصفحة

when riyadh_list .BeforePicking do if get start value = "en" then set riyadh_list . Elements to get global riyadh_highlights_en else if get start value = "ar" then set riyadh_list . Elements to get global riyadh_highlights_ar شكل 3.38: تهيئة محتوى ListPicker (قائمة الخيارات) --- SECTION: فتح صفحة جديدة من قائمة الخيارات ListPicker --- بعد أن أصبح لديك قائمة من المعالم البارزة للمدينة التي تختارها، سيتعين عليك أن تجعل لكل معلم صفحة خاصة تعرض فيها معلومات عنه. وسيُحدّد كل اختيار من ListPicker (قائمة الخيارات) المعلم المطلوب لفتحه، بحيث تدعم الصفحة الخاصة بكل من المعالم اللغتين الإنجليزية والعربية. --- SECTION: للحصول على اسم الصفحة الجديدة للمعلم من التحديد ListPicker (قائمة الخيارات)، --- 1. أنشئ variable (متغير) جديد اسمه selection (اختيار). 2. أضف empty string (سلسلة نصية فارغة) إلى المتغير selection (اختيار). 3. حدد الحدث AfterPicking (بعد الاختيار) لـ riyadh_list (قائمة_الرياض). 4. أضف المتغير selection (اختيار) داخل الحدث AfterPicking (بعد الاختيار). 5. اضبط المتغير selection (اختيار) إلى خاصية selection (اختيار) لـ riyadh_list (قائمة_الرياض). 6. أضف لبنة التعليمات البرمجية if داخل الحدث AfterPicking (بعد الاختيار). وزارة التعليم Ministry of Education 163 2025 - 1447 --- VISUAL CONTEXT --- **DIAGRAM**: App Inventor ListPicker BeforePicking Event Block Description: A block diagram showing conditional logic for setting ListPicker elements based on a 'start value' (language preference 'en' or 'ar'). The block is labeled with '8' in a blue circle. It defines an action 'when riyadh_list .BeforePicking' occurs. Inside, it checks 'if get start value = "en"' and if true, 'then set riyadh_list . Elements to get global riyadh_highlights_en'. Otherwise, 'else if get start value = "ar"' and if true, 'then set riyadh_list . Elements to get global riyadh_highlights_ar'. Key Values: 8, when, riyadh_list, .BeforePicking, do, if, get start value, =, "en", then, set, riyadh_list, .Elements, to, get global riyadh_highlights_en, else if, get start value, =, "ar", then, set, riyadh_list, .Elements, to, get global riyadh_highlights_ar Context: Illustrates how to dynamically load content based on language selection (English or Arabic) using App Inventor blocks before the ListPicker is opened. **SCREENSHOT**: MIT App Inventor Interface with Variable Initialization Blocks Description: A screenshot of the MIT App Inventor development environment. The top bar shows 'Projects', 'Connect', 'Build', 'Settings', 'Help'. The app name 'Visit_SA_App' is visible. Below the app name, there are buttons 'Cities', 'Add Screen', 'Remove Screen', 'Publish to Gallery'. The main workspace is divided into 'Blocks' and 'Viewer' sections. The 'Blocks' section on the left lists categories: 'Built-in', 'Control', 'Logic', 'Math', 'Text', 'Lists', 'Dictionaries', 'Colors', 'Variables', 'Procedures', 'Cities'. The main canvas shows several programming blocks: 'initialize global name to' (with a blue circle '1'), 'get', 'set to', and 'initialize local name to in'. An arrow points from the 'initialize global name to' block to another block labeled 'initialize global selection to'. Key Values: MIT APP INVENTOR, Projects, Connect, Build, Settings, Help, Visit_SA_App, Cities, Add Screen, Remove Screen, Publish to Gallery, Blocks, Viewer, Built-in, Control, Logic, Math, Text, Lists, Dictionaries, Colors, Variables, Procedures, Cities, initialize global name to, 1, get, set to, initialize local name to in, initialize global selection to Context: Demonstrates the visual programming interface of MIT App Inventor, specifically showing how to initialize global and local variables, and highlighting the initialization of a 'selection' variable.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 5 بطاقة لهذه الصفحة

ما هو الغرض من استخدام حدث BeforePicking في ListPicker (قائمة الخيارات)؟

الإجابة: يستخدم حدث BeforePicking لتهيئة محتوى ListPicker (قائمة الخيارات) قبل فتحها، مثل تحميل القائمة باللغة المناسبة (الإنجليزية أو العربية) بناءً على قيمة بداية التطبيق.

الشرح: يسمح هذا الحدث بإعداد البيانات أو تغييرها قبل أن تظهر قائمة الخيارات للمستخدم، مما يضمن عرض المحتوى الصحيح في الوقت المناسب.

تلميح: فكر في الوقت المناسب لتحميل البيانات في القائمة قبل أن يراها المستخدم.

التصنيف: مفهوم جوهري | المستوى: متوسط

ما هي الخطوات الأساسية للحصول على اسم الصفحة الجديدة للمعلم من التحديد في ListPicker (قائمة الخيارات)؟

الإجابة: 1. إنشاء متغير جديد اسمه selection (اختيار). 2. إضافة سلسلة نصية فارغة إلى المتغير selection. 3. تحديد الحدث AfterPicking (بعد الاختيار) لـ riyadh_list. 4. إضافة المتغير selection داخل الحدث AfterPicking. 5. ضبط المتغير selection إلى خاصية selection لـ riyadh_list. 6. إضافة لبنة التعليمات البرمجية if داخل الحدث AfterPicking.

الشرح: تتبع هذه الخطوات المنطق البرمجي الصحيح لالتقاط اختيار المستخدم من القائمة واستخدامه لفتح المحتوى المناسب.

تلميح: ركز على التسلسل المنطقي: إنشاء متغير، ثم ربطه بالحدث، ثم تعيين القيمة.

التصنيف: صيغة/خطوات | المستوى: صعب

ما الفرق بين حدثي BeforePicking و AfterPicking في مكون ListPicker (قائمة الخيارات)؟

الإجابة: حدث BeforePicking يتم تنفيذه قبل فتح قائمة الخيارات للمستخدم (لتهيئة المحتوى)، بينما حدث AfterPicking يتم تنفيذه بعد أن يقوم المستخدم باختيار عنصر من القائمة (لمعالجة الاختيار).

الشرح: يحدد التوقيت المختلف لكل حدث الغرض منه: التحضير المسبق مقابل الاستجابة للاختيار.

تلميح: فكر في توقيت كل حدث بالنسبة لعملية التفاعل مع القائمة من قبل المستخدم.

التصنيف: فرق بين مفهومين | المستوى: متوسط

كيف يمكن جعل تطبيق يدعم اللغتين الإنجليزية والعربية بناءً على اختيار المستخدم الأولي؟

الإجابة: عن طريق استخدام حدث BeforePicking للتحقق من قيمة بداية التطبيق (start value). إذا كانت القيمة "en"، يتم تعيين عناصر القائمة إلى القائمة العالمية الإنجليزية (riyadh_highlights_en)، وإذا كانت "ar"، يتم تعيينها إلى القائمة العالمية العربية (riyadh_highlights_ar).

الشرح: هذه الطريقة تسمح بتحميل المحتوى المناسب للغة تلقائياً قبل عرض القائمة، مما يوفر تجربة مستخدم متعددة اللغات.

تلميح: تذكر أن الشرط (if) يستخدم للتحقق من قيمة اللغة.

التصنيف: تفكير ناقد | المستوى: صعب

ما هو تعريف المتغير selection (اختيار) في سياق معالجة اختيار ListPicker؟

الإجابة: هو متغير يستخدم لتخزين العنصر الذي يختاره المستخدم من قائمة الخيارات (ListPicker) بعد حدوث حدث AfterPicking، وذلك لاستخدامه لاحقاً (مثل فتح صفحة المعلم المناسبة).

الشرح: يسمح هذا المتغير بحفظ الاختيار مؤقتاً لمعالجته في خطوات لاحقة من البرنامج.

تلميح: فكر في الغرض من تخزين قيمة مؤقتة بعد تفاعل المستخدم.

التصنيف: تعريف | المستوى: سهل