قائمة الطعام
مجانا
التسجيل
الصفحة الرئيسية  /  نصيحة/ كيفية إضافة زر قائمة على نظام أندرويد. كيفية فتح وتكوين القائمة الهندسية على Android - التعليمات والأكواد السرية

كيفية إضافة زر قائمة على نظام أندرويد. كيفية فتح وتكوين القائمة الهندسية على Android - التعليمات والأكواد السرية

لذلك ، لنقم بإنشاء قائمة بسيطة اليوم لتطبيق Android. لنقم بإنشاء مشروع جديد... دعنا نسميها Mymenu ، انقر فوق التالي. دعنا نختار نشاط فارغ. انقر فوق إنهاء.

سيقوم نظام Android studio بإعداد مشروع جديد لنا ، دعنا ننتقل إلى نصوص متدرجة. في Build gradle ، دعنا نضيف تطبيقًا جديدًا. نحن بحاجة إلى حزمة

تنفيذ "com.android.support:design:26.0.0-beta1"

على الأقل في مشروعي. انقر فوق مزامنة المشروع.

عناصر القائمة

دعنا نذهب إلى مجلد Res وننشئ مجلد موارد Andriod جديدًا فيه بنوع مورد - قائمة. في ذلك ، سننشئ قائمة ملف موارد جديدة. سنقوم بتعيين اسم للملف ، وكذلك اسم المجلد - القائمة.

في قائمتنا الرئيسية ، عن طريق السحب والإفلات ، أضف عنصر MenuItem بمقدار 3 قطع.

في ملف strings.xml ، اكتب اسمًا جديدًا لعناصر القائمة عن طريق إنشاء قيم سلسلة إضافية لها.

لنفترض أن العنصر 1 يكون العنصر 1 ويكون العنصر 2 هو العنصر 2 ويكون العنصر 3 في حالة الخروج.

الفقرة 1 النقطة 2 مخرج

في النسخة النصية من menu.xml ، سنقوم بتعيين أسماء من strings.xml لعناصرنا. أيضًا لكل عنصر سنضيف Android: id المسمى action1 و action2 و action3 و

للتفاعل مع هذه العناصر. الإجراء رقم 1 سيكون مسؤولاً عن شيء ما ، نوع من رد الفعل ، الضغط على الإجراء 2 ، على التوالي ، سيكون مسؤولاً عن الإجراءات الأخرى ، الإجراء 3 سيكون مسؤولاً عن الخروج من التطبيق.

في ملف MainActivity ، سنكتب عدة وظائف للعمل مع القائمة:

onCreateOptionsMenuOverride public boolean onCreateOptionsMenu (قائمة القائمة) (getMenuInflater (). inflate (R.menu.menu، menu)؛ return true؛) onOptionsItemSelectedOverride public boolean onOptionsItemSelected (caseItem switch) .id.action1: txt.setText (R.string.item1) ؛ إرجاع صحيح ؛ الحالة R.id.action2: txt.setText (R.string.item2) ؛ إرجاع صحيح ؛ الحالة R. id.action3: txt.setText (R.string.item3) ؛ finish () ؛ إرجاع صحيح ؛) إرجاع super.onOptionsItemSelected (عنصر) ؛)

دعنا نعلن عن متغير من نوع TextView txt ، ونربطه بعنصر TextView ، في onCreate via

txt = (TextView) findViewById (R.id.txt) ،

في مخطط activity_main.xml عن طريق إضافته

android: id = "@ + id / txt"

لعرض النص.

لنبدأ تطبيقنا في المحاكي. كما ترى ، تظهر عناصر القائمة ، عند النقر فوق قيمة العنصر 1 أو 2 ، يتغير النص إلى العنصر 1 أو العنصر 2 ، عند النقر فوق الزر "خروج" ، يظهر النص "خروج" ويتم إغلاق التطبيق.

تخطيط القائمة

يبدو أن كل شيء يكون على ما يرام. ومع ذلك ، كما هو الحال دائمًا في Android استوديو معينستعمل القائمة فقط على المحاكي ، وبالتالي سنضيف رمزًا صغيرًا إلى ملف styles.xml ، وقبل ذلك سنغير في AndroidManifest.xml

android: theme = "@ style / AppTheme"

android: theme = "@ style / AppTheme.NoActionBar"

الذي يقول ذلك أسلوب جديدبدون ActionBar. أيضًا ، في MainActivity onCreate ، أضف متغير شريط الأدوات بنوع ToolBar. دعنا نحددها عبر شريط الأدوات = (شريط الأدوات) ، ابحث عنViewById (R.id.toolbar) ، وقم بتمكين دعم setSupportActionBar (شريط الأدوات).

أضف التعليمات البرمجية التالية إلى تخطيط activity_main.xml أمام TextView:

دعنا نربط هذه الأدوات باستيراد تطبيقنا.

استيراد android.support.v7.widget.Toolbar ؛

اضغط على Alt + Enter ، وسنضيف تحديثًا لاستيراد تطبيقنا. قد تضطر إلى القيام به عدة مرات لتوصيل الأداة. انقر فوق حفظ.

يمكننا الآن تشغيل تطبيقنا في المحاكي. يبدو كل شيء كما هو تمامًا ، ولكن بدون هذا الرمز ، لا يمكن تثبيت تطبيقنا على جهاز حقيقي. لنقم بتقديم طلب موقع.

ذات مرة ، منذ حوالي 5 سنوات ، كانت الأجهزة التي تعمل بنظام التشغيل Android تكتسب شعبية بسرعة. لقد كان وقتًا جيدًا ، كان العالم يخرج من الأزمة ، وكان هناك العديد من الأشياء المثيرة للاهتمام في المستقبل وكان هناك زر القائمة على كل جهاز.
بعد ذلك بعامين ، أفاد الرجال من Android أن زر "القائمة" الموجود في علبة الهاتف لم يعد عصريًا ويمكن القيام به بدونه. منذ ذلك الحين ، يعرف كل واحد منا (نقابة المطورين) كيفية عرض القائمة على الغالبية العظمى من أجهزة Android.
بالنسبة للبعض ، سيبدو هذا أكورديونًا رهيباً ، على الرغم من ذلك ، ولكن في الأسبوع الماضي قضينا ساعتين من حياتنا في محاولة شرح ذلك للمستخدم. كان من المستحيل تحمل هذا ، لذا أقدم وصفًا أدناه لكيفية استدعاء وظيفة القائمة على أجهزة Android.
هذا ما تبدو عليه أزرار القائمة الميكانيكية في معظم الأجهزة الشائعة:

علاوة على ذلك ، في معظم الحالات ، اللمسة القصيرة تكفي لاستدعاء وظيفة القائمة. ومع ذلك ، غالبًا ما يمكن إضافة مكالمة قائمة إلى زر التحديد تشغيل التطبيقات... تبدو هكذا:


في هذه الحالة ، سيتم فتح القائمة فقط بضغطة طويلة(ما يسمى بنقرة طويلة)! هذا هو ليس فقط وخز بإصبع ، ولكن وخز مع الاستمرار... كثير من الناس يقولون بعد ذلك نجاح باهر!

أنصح مالكي الأجهزة اللوحية بالاهتمام بها منطقة العملالشاشة ، هذا هو المكان الذي توجد فيه الأزرار في أغلب الأحيان ، بما في ذلك القائمة.


علاوة على ذلك ، ليس دائمًا هو الحد الأقصى على اليمين ، لكن هذا الزر يبدو تمامًا مثل هذا.
على ال إصدارات جديدةيبدو زر قائمة نظام التشغيل Android بهذا الشكل.

هناك العديد وظائف مخفيةوالتي يمكن أن تكون مفيدة للغاية. يعد System UI Tuner واحدًا منهم. بعد تفعيل هذه القائمة ، يحصل المستخدم على المزيد من الخيارات من حيث التخصيص. واجهة أندرويد... في إحدى المقالات على Treshbox ، نحن بالفعل.

قام بعض المطورين بالفعل بتكييف System UI Tuner ليناسب الاحتياجات. مستخدمين عاديين... على سبيل المثال ، والذي كان متاحًا أيضًا في الإصدارات السابقةيستخدم Android UI Tuner لإضافة أزرار مخصصة إلى قائمة الإجراءات السريعة ، والتي تنزلق من الأعلى إلى جانب ستارة الإشعارات. الشيء الرائع هو أنه في Android 6.0 Marshmallow ، لا يتطلب استخدام الإعدادات السريعة المخصصة الوصول إلى الجذر.

كيف تعمل

بادئ ذي بدء ، تحتاج إلى تنشيط نفس قائمة موالف واجهة المستخدم للنظام ، والتي تعمل فقط على مستقر نسخة أندرويد 6.0 نسيم عليل. لم تحصل بعض معاينات Android M على هذه الميزة. يمكنك أن تقرأ عن تنشيط UI Tuner في مقالتنا المقابلة ، ولكن إذا كنت لا تريد القفز إلى مكان ما من هذه المادة ، فافتح "الستارة" العلوية بالكامل بإجراءات وإشعارات سريعة ، واضغط باستمرار على الزر باستخدام الترس يؤدي في قائمة الإعدادات - كل شيء ، يتم تنشيط System UI Tuner. الآن في القائمة العامة إعدادات Androidظهر العنصر المقابل ، لكنك لن تحتاجه عمليًا. يقوم تطبيق Custom Quick Settings بعمل كل ذلك من أجلك.


بعد ذلك ، قم بتثبيت تطبيق Custom Quick Settings نفسه ، والمتوفر مجانًا ، ولكن مع الإعلانات. تتم إزالته من خلال عمليات الشراء الداخلية - 99 روبل.


بعد تثبيت التطبيق ، يمكن إضافة زر مخصص به إجراء في القائمة العلوية مع إجراءين. من خلال النقر فوق Custom Quick Settings plus ، يمكنك اختيار اسم الزر ، ويكون الإجراء هو فتح أي صفحة ويب محددة ، أو تشغيل تطبيق ، أو الانتقال إلى بعض القائمة الفرعية للإعدادات ، أو تنشيط الوحدة. بالنسبة إلى الزر ، يمكنك تحديد رمز (في المجموع ، تتوفر 1200 قطعة قياسية ؛ يتم دعم القطع المخصصة) ، بالإضافة إلى إجراء إضافي عند الضغط لفترة طويلة. على سبيل المثال ، يمكنك إنشاء رابط سريع إلى Trashbox ، وسيتم فتح ضغطة طويلة أو أي موقع آخر - وهو أمر ملائم للغاية.

فرص

يمكنك أيضًا اتخاذ إجراء سريع لتوصيل الجهاز بشبكة Wi-Fi محددة موجودة في القائمة المحفوظة. ستكون الأزرار المخصصة مع تطبيقات التشغيل مفيدة للغاية - ليست هناك حاجة للذهاب إلى سطح المكتب لفتحها البرنامج المطلوب.

الاحتمالات فيما يتعلق بإنشاء إجراءات سريعة محدودة للغاية - يمكنك فقط تعيين اتصال بملف شبكات Wi-Fiأو جهاز بلوتوث. كل شيء هنا يعتمد على وظيفة System UI Tuner.


في الإصدار الاحترافي من التطبيق ، يمكنك إضافة اختصارات وظيفية بإجراءات سريعة. هناك دعم لـ IFTTT. تجدر الإشارة إلى أن جميع الأزرار المخصصة المضافة باستخدام Custom Quick Settings لا تعمل على شاشة القفل - فهي ببساطة لا تظهر في الغالق ، وهو أمر متوقع تمامًا.

تذكر أن كل هذه الميزات متوفرة أيضًا على Android 5.0 / 5.1 ، لكنها ضرورية لهذا الغرض. يلاحظ المطور أن Custom Quick Settings لا يستخدم طاقة بطارية إضافية - يتم تشغيل البرنامج مرة واحدة عند تمهيد النظام ، ويتم تحديث الأزرار المخصصة فقط بعد قيام المستخدم بذلك.

جميل أن أرى كيف غرفة العمليات نظام الاندرويدمع كل نسخة جديدةيتولى الوظائف التي كانت متوفرة سابقًا فقط مع حقوق الجذر. نأمل ألا تزيل Google ميزة System UI Tuner في المستقبل. تحديث Android 6.0.1 أو 6.1. بالمناسبة ، هل قمت بالفعل بالترقية إلى Marshmallow؟

يدعم Android عدة أنواع من القوائم. الأول هو وجود زر منفصل بالهاتف. قائمة الطعام(في الهواتف القديمة) ، يؤدي الضغط إلى إحضار قائمة. في الأجهزة الجديدة ، تمت إزالة زر منفصل واستبداله بأيقونة قائمة على شكل ثلاث نقاط في اتجاه رأسي. النوع الثاني عبارة عن قائمة سياق تظهر عند الضغط مع الاستمرار بإصبعك على الشاشة في المكان المطلوب (يمكنك أيضًا الضغط مع الاستمرار زر المركزعلى الهاتف). قائمة السياقبدورها قد يكون لها قائمة فرعية. اليوم سوف نلقي نظرة على النوع الأول من القائمة. ستنظر هذه المقالة في العمل مع القائمة على الأجهزة الجديدة ضمن ذكري المظهر 4.0 وما فوق.

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

إنشاء مشروع جديد على أساس نشاط فارغوتشغيله. لا توجد قائمة حتى الان.

لنقم بإنشاء بعض موارد السلسلة في ملف الدقة / القيم / strings.xmlسيكون مسؤولاً عن عناصر القائمة:

إعدادات قط قط قطه صغيرة

الآن قم بإنشاء ملف جديد قائمةفي المجلد الدقة الدقة, | جديد | الدليل). بعد ذلك ، قم بإنشاء ملف في المجلد الذي تم إنشاؤه menu_main.xml- يشير الاسم إلى أن القائمة مرتبطة بالنشاط الرئيسي النشاط الرئيسي(انقر بزر الماوس الأيمن فوق المجلد قائمة | جديد | ملف موارد القائمة). إذا كنت تنوي إنشاء تطبيق به عدة شاشات ، فسيكون لكل نشاط قائمة منفصلة بإعداداته الخاصة. الآن ، دعنا نفتح الملف menu_main.xmlوأضف الكود الخاص بنا إلى النموذج الناتج:

لنفتح الملف النشاط الرئيسي... لا يوجد سوى طريقة واحدة فيه الآن عند الإنشاء ()... دعونا نضيف طريقة جديدة onCreateOptionsMenu ()... بالضبط هذه الطريقةمسؤول عن ظهور قائمة النشاط. اختر قائمة في الاستوديو رمز| وفي النافذة التالية ، ابدأ في إدخال اسم الطريقة بالأحرف الأولى. يمكنك الإدخال باستخدام الأحرف الكبيرة الأولى ، أي أوكوم ( ان جأعد ا ptions م enu) للعثور بسرعة على الخط الذي تريده. اضغط الزر موافقونحصل على الشغل.

Override public boolean onCreateOptionsMenu (قائمة القائمة) (إرجاع super.onCreateOptionsMenu (القائمة) ؛)

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

Override public boolean onCreateOptionsMenu (قائمة القائمة) (getMenuInflater (). Inflate (R.menu.menu_main، menu) ؛ إرجاع صحيح ؛)

في الأسلوب تضخم ()أنت تشير إلى مورد قائمة ( R.menu.menu_main) وكائن فئة قائمة الطعام.

في اللغة الإنجليزية "تضخم" يترجم إلى تضخم ، أي كما تصورها مطورو Android ، نقوم بتضخيم كائن ، على سبيل المثال ، قائمة ، بالبيانات. ولكن في الواقع ، تأتي كلمة تضخم من العبارة في شقة- للشقة. هناك تقليد قديم للسماح للقط بالدخول إلى الشقة أولاً ، والذي يستكشف جميع زوايا المنزل وأركانه ويعلن موافقته على العيش فيه. هذه هي الطريقة التي ندير بها البيانات من ملف XML إلى كائن MenuInflater.

قم بتشغيل المشروع. الآن ، على الجانب الأيمن من الرأس ، سترى أيقونة من ثلاث نقاط مرتبة في خط عمودي. انقر فوق الرمز لرؤية عنصر القائمة إعدادات.

كما قد تتخيل ، العنصر العنصرمسؤول عن عنصر قائمة منفصل. دعنا نضيف ثلاثة عناصر أخرى بنفس الطريقة ، ونغير فقط المعرف والنص في القائمة:

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

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

وأخيرًا ، سمة مهمة التطبيق: showAsActionيحدد سلوك القائمة بتنسيق شريط العمل... المعنى مطلقايعني أن عنصر القائمة يجب ألا يظهر في العنوان ، ولكن فقط في القائمة المنبثقة ، أي يكون وراء ثلاث نقاط. إذا قمت بتعيين القيمة دائماثم البند إعداداتسيظهر على الفور في رأس التطبيق الخاص بك. القيم المتاحة أيضا ifRooms, مع النصو CollageActionView... جربها بنفسك. على سبيل المثال، ifRoomيعرض عنصر قائمة إذا كانت المساحة تسمح بذلك. إذا كان هناك الكثير من النقاط ، فإنها ستعيق الطريق فقط. كقاعدة عامة ، يعرض هذا الخيار كلمة أو رمزًا قصيرًا جدًا للعمليات المتكررة لتجنب النقر غير الضروري على ثلاث نقاط.

انتبه إلى السمة التطبيق: showAsActionالذي ينتمي إلى مساحة الاسم xmlns: app = "http://schemas.android.com/apk/res-auto"... مر وقت لم تكن فيه مساحة الاسم موجودة وتستخدم المشاريع السمة أندرويد: showAsActionمن مساحة الاسم القياسية. إذا اشتكى الاستوديو من خطأ ما ، فقم بتحرير الكود.

حتى تقوم عناصر القائمة بعمل مفيد. أي نقرة على العنصر تؤدي ببساطة إلى إغلاق القائمة دون أي عواقب واضحة. لم نكتب أي رمز للتعامل مع النقرات حتى الآن.

اختيار عناصر القائمة

لقد تعلمنا كيفية إنشاء قائمة. ولكن حتى الآن لا فائدة منه ، لأن عناصر القائمة لا تتفاعل بأي شكل من الأشكال مع نقراتنا. يتم استخدام طريقة مختلفة لمعالجة نقرات عناصر القائمة. onOptionsItemSelected ()... دعنا نضيف طريقة بنفس الطريقة كما في المثال السابق. دعنا نحصل على فراغ.

Override public boolean onOptionsItemSelected (عنصر عنصر القائمة) (إرجاع super.onOptionsItemSelected (عنصر) ؛)

معامل العنصرمسؤول عن عنصر القائمة. يجب أن تحصل على معرف القائمة من خلال الطريقة getItemId ()وتقديم رمز لها. نظرًا لأن القائمة تتكون عادةً من عدة عناصر ، فمن الملائم استخدام الإنشاءات إذا كان غير ذلكأو تحول... لعرض المعلومات ، سوف نستخدم تسمية نصية. أضف مكونًا إلى شاشة النشاط عرض النص... يمكنك استخدام ملف عرض النصالمسمى "Hello World!" فقط أعطه هوية.

android: id = "@ + id / textView" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Hello World!" />

دعنا نضيف الكود إلى القالب لعنصر القائمة المحدد:

Override public boolean onOptionsItemSelected (MenuItem item) (// احصل على معرف عنصر القائمة المحدد int id = item.getItemId () ؛ TextView infoTextView = (TextView) findViewById (R.id.textView) ؛ // العمليات المحددة مفتاح عنصر القائمة (المعرف) (الحالة R.id.action_cat1: infoTextView.setText ("لقد اخترت قطة!") ؛ إرجاع صحيح ؛ حالة R.id.action_cat2: infoTextView.setText ("لقد اخترت قطة!" ) ؛ إرجاع صحيح ؛ الحالة R. id.action_cat3: infoTextView.setText ("لقد حددت قطة!") ؛ إرجاع صحيح ؛ افتراضي: إرجاع super.onOptionsItemSelected (عنصر) ؛))

قم بتشغيل التطبيق ، افتح القائمة وحدد أي عنصر قائمة. يجب أن تظهر رسالة في مربع النص.

موجود طريقة بديلةعبر XML ، على غرار التعامل مع نقرات الزر (منذ Android 3.0). يمكنك إضافة السمة android: onClickفي موارد القائمة ولست بحاجة إلى استخدام استدعاء طريقة onOptionsItemSelected ()... مع مساعدة android: onClickيمكنك تحديد الطريقة المطلوبة عند اختيار عنصر القائمة. يضيف سمة معينةللعنصر إعدادات

الآن ، في رمز النشاط ، دعنا نكتب ما يلي:

// تم تعيين سمة عنصر قائمة الإعدادات على android: onClick = "onSettingsMenuClick" عام باطل onSettingsMenuClick (عنصر عنصر القائمة) (TextView infoTextView = (TextView) findViewById (R.id.textView)؛ infoTextView.setText ("لقد حددت عنصر الإعدادات من الأفضل اختيار قطة ") ؛)

مفاتيح

يمكنك تغيير مظهر عناصر القائمة إلى عرض زر الاختيار. للقيام بذلك ، تحتاج إلى إضافة العنصر مجموعةمع السمة android: checkableBehavior = "single":

لا أرى الكثير من المعنى في هذا الوضع. ولن نفكر فيه.

وضع التصميم

أضاف Android Studio 2.2 وضع إنشاء قائمة رسومية ، والذي يشبه شريط الأدوات لإضافة مكونات جديدة إلى الشاشة. يتكون شريط القائمة من أربعة عناصر: عنصر القائمة, عنصر البحث , قائمة الطعام, مجموعة.

المبدأ هو نفسه الذي تختاره العنصر المطلوبواسحبه على الشاشة إلى منطقة القائمة. إذا كنت قد بحثت في إنشاء القوائم يدويًا ، فحينئذٍ من هنالن يسبب لك أي صعوبة. يتيح لك رسم بنية قائمة بسرعة ثم تعديلها يدويًا.