درس برمجة خيارات القائمة في تطبيق اندرويد + فيديو

بسم الله الرحمن الرحيم

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

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

كما أحب أن أذكر أن هذا الدرس هو أول درس يحتوي على تسجيل فيديو .. أي هذه أول مرة نسجل فيديو ولذلك نريد أقتراحاتكم لتطوير عملية الشرح لكم وهل هي مناسبة أو لأ .. نستقبل اقتراحاتكم جميعاً ^^

الآن لندخل في هذا الدرس السهل اليسير على الجميع والمميز عند البعض, فجميع التطبيقات تقريباً مفعل لديها القائمة لتسهل خيارات التنقل في التطبيق.

في هذا الدرس سوف نتعلم أربع أوامر :

* مشاركة التطبيق * ارسال رسالة إلى مبرمج التطبيق * معلومات حول التطبيق ( اي التنقل بين الواجهات ) * خروج

 سوف أسرد لكم الأكواد هنا, وفي الشرح التعرف عليها أكثر.

res/menu/menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <item android:id="@+id/item1" android:title= "مشاركة التطبيق" />
    <item android:id="@+id/item2" android:title= "رسالة للمبرمج" />
    <item android:id="@+id/item3" android:title= "حول التطبيق" />
    <item android:id="@+id/item4" android:title= "خروج" />
</menu>

 MainActivity.java

// القائمة
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        switch (item.getItemId())
        {
            case R.id.item1: // برمجة العنصر الأول
                try
                { Intent abb = new Intent(Intent.ACTION_SEND); // مشاركة تطبيقك
                    abb.setType("text/plain");
                    abb.putExtra(Intent.EXTRA_SUBJECT, "تطبيق تجريبي");
                    String aliwi = "\n تطبيق قمنا بالعمل عليه من أجل شرح درس على مدونة اندرودي عربي\n\n";
                    aliwi = aliwi + "https://play.google.com/store/apps/details?id=com.andrody.learningenglish \n\n";
                    abb.putExtra(Intent.EXTRA_TEXT, aliwi);
                    startActivity(Intent.createChooser(abb, "اختيار:"));
                }
                catch(Exception e)
                { e.toString();
                }
                return true;
            case R.id.item2: // برمجة العنصر الثاني
                Intent AAA = new Intent (Intent.ACTION_VIEW, Uri.parse("mailto:andrody2015?subject=في شأن درس خيارات القائمة")); // رسالة للمبرمج
                startActivity (AAA);
                return true;
            case R.id.item3: // برمجة العنصر الثالث
                Intent BBB = new Intent(MainActivity.this,About.class); // الانتقال الى صفحة اخرى
                startActivity (BBB);
                return true;
            case R.id.item4: // برمجة العنصر الرابع
                finishAffinity(); // اغلاق كافة التطبيق
                return true;

            default:
        return super.onOptionsItemSelected(item);}
    }

متابعة الدرس على اليوتيوب في فيديو : اضغط هنا

لتحميل الدرس بجودة HD : اضغط هنا

نشكر لكم جهودكم ودعمكم لموقعنا .. والسلام عليكم 🙂

 

عن عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

شاهد أيضاً

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

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

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

13 تعليقات

  1. مشكور أخي عبد القادر على جهودك الرائعة
    هنالك 3 ملاحظات على هذا الدرس
    1. finishAffinity تتطلب API16 السؤال ما البديل في النسخ السابقة ؟
    2.القائمة تظهر لدي في الزاوية اليمينية العلوية و لديك في الأسفل المنتصف ما الفرق و لماذا و كيف نحدد مكان ظهورها؟
    3.في خيار ارسال الى مبرمج وضعت الكود الخاص كالتالي:
    Intent intent2 = new Intent (Intent.ACTION_VIEW, Uri.parse(“mailto:f@f.f?subject=The Subject”));
    و عند الضغط عليه يظهر الخطأ التالي:
    FATAL EXCEPTION: main
    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=mailto:x@x.xxxxxxxxxxxxxxxxxxxxx }
    ما الحل لهذه المشكلة ؟

    مع الشكر الجزيل لكم

    • العفو أخي الفاضل ..
      بالنسبة لاغلاق التطبيق تستطيع مراجعة التالي :
      http://stackoverflow.com/a/23703835/4740879

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

      بالنسبة لرسالة الى المبرمج .. جرب الكود ويعمل بشكل سليم ..
      طبعاً لا تنسى اضافة تشغيل هذا الانتنت ..
      startActivity(intent2);

      • شكرا
        بالنسبة للنقطة الثالثة لم تعمل مع الأسف و الكود كالتالي :

        Intent intent2 = new Intent (Intent.ACTION_VIEW, Uri.parse(“mailto:f@f.f?subject=The Subject”));
        startActivity (intent2);
        و نفس الاكسبشن المذكور سابقا يظهر في كل مرة
        و لا يوجد سوى السطرين المذكورين في كود الزر
        و شكرا

    • جرب هذا الكود لقد نجح معي

      Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
      “mailto”,”abc@gmail.com”, null));
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, “Subject”);
      startActivity(Intent.createChooser(emailIntent, “Send email…”));

  2. عبدالله زبير

    اخي العزيز عند الضغط على كونترول ومفتاح سي لايقوم بعمل نسخ هل من حل وشكرا

    • اهلا وسهلا بك, ما نوع البرنامج الذي تستخدمه ؟! .. يجب أن تذهب الى الاعدادت وتتأكد من إعدادات لوحة المفاتيح لأنك تستطيع جعل خيار النسخ مع اي ازرار تريد.

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

    • وعليكم السلام اخي ..

      في الصفحة الثانية التي اشتغل فيها الكود بشكل صحيح في الكود .. في الاعلى يوجد كلمة extends

      بعد هذه الكلمة يوجد كلما تكون في الغالب activity او appcompatactivity او actionbaractivity

      المهم إذا هذه الكلمة اشتغل معها الكود سليم, اجعل الصفحة الاولى مثل الثانية تماماً بهذه الكلمة ..

  4. السلام عليكم
    هل أطمع في دورة تعليم برمجة الاندرويد على برنامج بيسك فور اندرويد
    شكرا جزيلا لكم

  5. محتاج مساعده منك انا عامل تطبيق للموقع ويب فيو ف الصفحه
    اول مابتفتح التطبيق بيفتح الموقع داخل التطبيق تمام ؟
    محتاج اعمل قايمه جانبيه فيها اقسام الموقع 1.2.3 وهكذا ويتم عرضهم داخل التطبيق ممكن الاكواد

    • ويكون اول مايفتح التطبيق يفتح الموقع بردو وليس القائمه الجانيية

  6. ziyad AL-areeqi

    كيف اجعل الازراز شفافه(اي انا اضفت تايبل لي اوت واضفت صوره واشتي اجعل الصوره باينه يعني تضهر الصوره ) لوسمحتم الي عند الحل يرد

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.