English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
具体实现代码:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.id.btn1)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity1.class); startActivity(intent); } }); // 方法2. 采用匿名内部类 ((Button) findViewById(R.id.btn2)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity2.class); startActivity(intent); } }); // 方法3. Activity直接实现OnClickListener接口 ((Button) findViewById(R.id.btn3)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity3.class); MainActivity.this.startActivity(intent); } }); // 方法4.标签直接标注触发事件 ((Button) findViewById(R.id.btn4)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity4.class); MainActivity.this.startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // يتم تثبيت القائمة؛ هذا يضيف عناصر إلىActionBar إذا كان موجودًا. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // التعامل مع النقر على عناصر قائمةActionBar هنا. سيتضمنActionBar العناصر إذا كان موجودًا. // يتم التعامل مع النقر على زر المنزل/التراجع تلقائيًا طالما // كما تطلب في ملف AndroidManifest.xml نشاط الأب. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
في الكود أعلاه:
1، الكلاس الذي قمنا بإنشائه، MainActivity، يجب أن يرث من Activity
3، يجب استدعاء method onCreate و تحميل ملف النصائح المعدة (layout) من خلال method setContentView
4، يمكن العثور على عنصر التحكم المناسب باستخدام method findViewById (في ملف النصائح المعدة layout) وتوصيل أحداث النقر (باستخدام المستمعين في Java وباستخدام الوكلاء في C#)
5، يمكن نقل البيانات من خلال object Intent والقفز إلى Activity أخرى
6، métodos onCreateOptionsMenu و onOptionsItemSelected هي الطريقة لإضافة واختيار عناصر القائمة.
ما يلي هو محتويات الأربع activities بشكل منفصل:
الأولى:
public class ButtonActivity1 extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button1); button = (Button) findViewById(R.id.btn1); button.setOnClickListener(new MyListener()); } public class MyListener implements OnClickListener { @Override public void onClick(View v) { Toast.makeText(ButtonActivity1.this, "هذه هي الطريقة الأولى لتحقيق الحدث، تعريف الحدث داخل الداخلية", 2000).show(); } } }
النوع الثاني:
public class ButtonActivity2 extends Activity { Button button ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button2); button = (Button)findViewById(R.id.btn1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ButtonActivity2.this, "هذه هي الطريقة الثانية لتحقيق الحدث، شكل الداخلية المجهولة", 2000).show(); } }); } }
النوع الثالث:
public class ButtonActivity3 extends Activity implements OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button3); button= (Button)findViewById(R.id.btn1); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Toast.makeText(ButtonActivity3.this, "هذه هي الطريقة الثالثة لتحقيق الحدث، بتنفيذ واجهة OnClickListener مباشرة", 2000).show(); break; default: Toast.makeText(ButtonActivity3.this, "لم يتم التفعيل", 2000).show(); break; } } }
النوع الرابع:
عليك تحديد طريقة btnClickEvent في ملف التخطيط xml الخاص بلayout.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.test.Button4Activity" > <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="نقرني" android:onClick="btnClickEvent"/> </LinearLayout> public class ButtonActivity4 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button4); } public void btnClickEvent(View v){ Toast.makeText(ButtonActivity4.this, "هذه هي الطريقة الرابعة للحدث، حيث يتم ربط حدث الـ Click مباشرة في علامة الزر في ملف التخطيط", 2000).show(); } }
من بين الأربعة طرق المذكورة أعلاه، يتم استخدام الطريقة الثالثة بشكل أكبر. عند وجود عدة أزرار تحتاج إلى تحفيز أحداث الـ click في activity واحدة، يصبح من السهل إدارة وتحسين كود أحداث الأزرار من خلال الطريقة الثالثة.
التنسيق هو جزء مهم جدًا من المادة، وسأقوم بشرحه في المدونة القادمة، هنا سأذكر فقط.
نحن نستخدم LinearLayout (تخطيط خطي، بالإضافة إلى التخطيطات الأخرى مثل التخطيط التناوبي والتخطيط المطلق وما إلى ذلك)، وضبطت خاصية Android:orientation إلى vertical (عمودي)، حيث يتم عرض العناصر من الأعلى إلى الأسفل.
التنسيقات الثلاثة الأخرى تشبه هذه المعلومات، حيث تحتوي فقط على زر واحد.
تكون تكوين activity_main.xml كما يلي (يحتوي فقط على 4 أزرار):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.test.MainActivity" > <Button android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe1" /> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe2" /> <Button android:id="@+id/btn3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe3" /> <Button android:id="@+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe4" android:onClick="btnClickEvent"/> </LinearLayout>
الخطوة الأهم هي تكوين Activity المسجلة في ملف AndroidManifest.xml، تكوينها الكامل هو كما يلي:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ButtonActivity1" android:label="@string/button1" /> <activity android:name=".ButtonActivity2" android:label="@string/button2" /> <activity android:name=".ButtonActivity3" android:label="@string/button3" /> <activity android:name=".ButtonActivity4" android:label="@string/button4" /> </application> </manifest>
هناك ملاحظة يجب الانتباه لها،
<action android:name="android.intent.action.MAIN" />
ضبط MainActivity كـ "النشاط الرئيسي"، أي أولاً ما يظهر عند بدء التطبيق هو هذا النشاط.
كل هذه النشاطات يجب أن تكون مسجلة في ملف "القائمة" حتى يتمكن البرنامج من العثور على هذه النشاطات.
محتويات تكوين ملف strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">اختبار</string> <string name="hello_world">مرحبا بالعالم!</string> <string name="action_settings">إعدادات</string> <string name="clickMe1">حدث زر 1</string> <string name="clickMe2">حدث زر 2</string> <string name="clickMe3">حدث زر 3</string> <string name="clickMe4">حدث زر 4</string> <string name="button1">زر 1</string> <string name="button2">زر 2</string> <string name="button3">زر 3</string> <string name="button4">زر 4</string> </resources>
بالطبع يمكنك أيضًا كتابة الملف المعدل مباشرة في ملف layout، ولكن هذا يفيد في الصيانة، وهو أيضًا الطريقة التي يوصي بها تطوير Android.
بالطبع يمكنك أيضًا كتابة الملف المعدل مباشرة في ملف layout، ولكن هذا يفيد في الصيانة، وهو أيضًا الطريقة التي يوصي بها تطوير Android.
إعلان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية المحتوى لصاحب الحقوق الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت بشكل متعاوني وتحميله بشكل مستقل، هذا الموقع لا يمتلك حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) لإبلاغنا، وتقديم الأدلة ذات الصلة، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فورًا.