كيفية عمل قائمة menu أعلى التطبيق لأي واجهة Activity تعليم اندرويد.

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


محتويات الدرس!
object الكائنات Function الدوال
Menu onCreateOptionsMenu()
Inflate()
getMenuInflater()
item onOptionsItemSelected()
getItemId()

اولا كود XML
يتم إنشاء مجلد menu بداخل res وإضافة ملف XML يسمى "menu_main.XML"يحتوي هذا الملف على الكود التالي
<menu XMLns:android="http://schemas.android.com/apk/res/android" XMLns:app="http://schemas.android.com/apk/res-auto" XMLns:tools="http://schemas.android.com/tools" tools:context="com.zee.dev.test1.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>
*يمكنك من تغيير اسم الملف لكن هذا هو المتعارف علية والاسهل في عملية التذكر، لأنه يقابل الاسم
كود java اولا تختار ال Activity التي تريد وضع القائمة عليها، مثلا سأختار الرئيسية، لأنها معروفة وأسهل تذكراً "MainActivity".
@Override
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main,menu); return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id== R.id.action_settings){
return true; }
return super.onOptionsItemSelected(item); }
طبعا هذا الكود يكون خارج دالة onCreate المشهورة، السبب ان الدالة السابقة هي فقط لمحتويات التطبيق، بينما شريط البرنامج و القائمة الجانبية تكون ضمن اطار الواجهة Activity وخارج دالة onCreate، واذا لاحظت ان مسار الدالة onCreate هي الى مجلد layout، بينما مسار قائمتنا الصغيرة هي الى مجلد menu، أيضا في هذ المثال يحتوي على عنصر واحد وهو الاعدادات، و يمكن من إضافة العديد من العناصر وجلبها بنفس الطريقة فقط انسخ العنصر item الخاص بقائمة الاعدادات وألصقه في XML أسفل العنصر السابق وغير ما يلزم مثل النص وid فقط لينتج عنصر جديد.
لإضافة عنصر جديد الى القائمة item كود XML
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/about"
android:orderInCategory="100"
android:title="@string/about"
app:showAsAction="never"/>
<item
android:id="@+id/website"
android:orderInCategory="100"
android:title="@string/visit_website"
app:showAsAction="never"/>

بينما في كود الجافا فقط أضف if الشرطية للبحث عن العنصر والتعامل معه.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id== R.id.action_settings){
return true; }
if (id== R.id.about){
return true; }
if (id== R.id.website){
return true; }
return super.onOptionsItemSelected(item); }
وإذا اردت التعامل مع العنصر وعمل حدث الضغط لأي عنصر في القائمة، ابسط مثال وهي الانتقال منActivity الى أخرى او الانتقال الى اعدادات التطبيق مثلا يكون الكود كالتالي
كود جافا java داخل if الخاصة بالإعدادات
if (id== R.id.action_settings){
Intent goActivity = new Intent(this,settingActivity.class);
startActivity(goActivity);
return true; }

نصائح لعمل القائمة المصغرة menu

 - عمل القائمة يساعد في سهولة الوصول إلى الإعدادات.
- يعرض أمور مختصرة كعمل زر للوضع الليلي.
 - ينصح باستخدام القائمة الجانبية إذا كان هناك الكثير من الإعدادات، ثلاث خطوط فوق بعضها، بينما القائمة الصغيرة إذا كان لديك من عنصر إلى 5 أو 6 عناصر فقط.
 المصادر
 موقع المطورين اندرويد "رابط الموقع" https://developer.android.com

1 تعليقات

إرسال تعليق