برمجة زر Button بطرق مختلفة اندرويد

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

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

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

اقرأ أيضاً : كيف تنشأ زر Button في اندرويد ستديو برمجة تطبيقات App

هذه الأزرار بأبسط شكل لها وبناء عليها تستطيع عمل أزرار متعددة فقط هذه كمثال سوف نعمل عليه في موضوعنا هذا.

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2" />
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 3" />

1/ الطريقة المتعارف عليها.

Button AAA = (Button)findViewById(R.id.button1);
	 AAA.setOnClickListener(new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
			
		}
	});

2/ لديك أزرار متعددة ودوال متعددة.

داخل الكلاس وخارج الدول تضع : ( أقصد أسفل public class مباشرة ).

Button AAA,BBB,CCC;

ثم في دالة onCreate تضع برمجة الأزرار :

AAA = (Button)findViewById(R.id.button1);
	 AAA.setOnClickListener(new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
			
		}
	});
	 BBB = (Button)findViewById(R.id.button2);
	 BBB.setOnClickListener(new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
			
		}
	});
	 CCC = (Button)findViewById(R.id.button3);
	 CCC.setOnClickListener(new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
			
		}
	});

الطرق السابقة هي التي تستخدم بكثرة وأول ما يتعلمها المبتدئ في دروسه. الآن طرق أخرى :

3/ إذا كانت أغلب الكلاس التي تعمل عليه أزرار استخدم :

– أجعل الكلاس بالشكل التالي :

public class Main extends Activity implements OnClickListener{
	Button AAA,BBB,CCC;

– داخل دالة الاون كريت onCreate :

AAA = (Button)findViewById(R.id.button1);
	 AAA.setOnClickListener(this);
	 BBB = (Button)findViewById(R.id.button2);
	 BBB.setOnClickListener(this);
		
	 CCC = (Button)findViewById(R.id.button3);
	 CCC.setOnClickListener(this);

– دالة جديدة بإسم onClick :

@Override
    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.button1:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
            break;
        case R.id.button2:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
            break;
        case R.id.button3:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
            break;
        }
    }

4/ الطريقة التي أفضلها انا كثيراً .. وهي محببة إلى قلبي $:

– فقط تجعل أكواد الأزرار في اللياوت ملفات xml بالشكل التالي :

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Button 1" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Button 2" />
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Button 3" />

تضع اسم الدالة التي يشغلها الزر داخل خاصية android:onClick وتنشأ هذه الدالة بالاكتفتي وتعطيها الأمر الذي تريد دون تعريف ..

بعد وضعنا للكود السابق الآن ابرمج جميع الازرار عن طريق دالة واحدة فقط وهي بالشكل التالي :

public void onClick(View v) {
        switch(v.getId()) {
        case R.id.button1:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
        	break;
        case R.id.button2:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
            break;
        case R.id.button3:
			// هنا تضع الأوامر التي ينفذها الزر بعد الضغط عليه
            break;
        }
    }

هذه الطرق التي وسبق أن استخدمتها .. ولكن بالتأكيد يوجد الكثير غيرها لذلك من يعرف طريقة أخرى فليشاركنا بها ليتم اضافاتها للموضوع ..

وانتظرونا بكل جديد ومفيد والسلام عليكم ~

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

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

شاهد أيضاً

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

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

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

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

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

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

4 تعليقات

  1. السلام عليكم اخي
    شكككرا جزيلا و اجرك الله على ماتقدمه

    لدي سؤال في خصوص الطريقة الثالثة والرابعة .
    انا جربتها في فريجمنت fragment ولم تنجح . مع اني ينبغي ان استعمل احدى هاتين الطريقتين ولا يمكنني استعمال الاولى والثانية
    ارجووووك اخي ممكن تعطيني حل لاستخدام الطريقة 3 و 4 في الفريجمنت

  2. شكرآ لك ولكن عندي سؤال:اذا كنت اريد ان اجعل الزر عندما يضغط علية احد يفتح صفحة اخري جديدة ماذا افعل؟

    • اهلا بك .. الكود التالي تضعه في داخل الاوامر التي يقوم بتنفيذها الزر عند الضغط عليه :

      Intent intent = new Intent(1111.this, 2222.class);
      startActivity(intent);

      1111 \ اسم الاكتفتي التي فيها الزر الان

      2222 \ اسم الاكتفتي التي تريد الانتقال اليها

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

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