روشی دیگر برای ساخت و تعریف عملکرد چند دکمه (Button)، در برنامه نویسی اندروید
در مبحثی دیگر، چگونگی ساخت و تعریف عملکرد چند دکمه (Button) را شرح دادیم، در این مبحث قصد داریم که روشی دیگر را ذکر کنیم.
فرض کنید که بخواهیم 5 دکمه تعریف کنیم که اگر کاربر بر روی هر یک از آنها اشاره کند، یک سری کد اجرا خواهد شد. برای این منظور، ابتدا باید 5 دکمه (Button) را در فایل xml متناظر با Activity تعریف کنیم. مثلا فایل xml ، می تواند به صورت زیر باشد :
<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=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
</LinearLayout>
دقت داشته باشید که دکمه های فوق را من برای یک فایل xml با لایه LinearLayout نوشته ام، برای موارد دیگر، می توانید ویژگی های دکمه را تغییر بدهید تا به درستی در لایه نمایش داده شوند (مطابق میلتان آنها را تغییر بدهید).
همان طور که در کدها می بینید، id های مربوط به دکمه ها را متفاوت تعیین کرده ایم که عبارتند از :
button2
button3
button4
button5
کدهای زیر را درون فایل java مربوط به Activity می نویسیم تا عملکرد دکمه ها مشخص شود (نام Activity را برابر MainActivity در نظر گرفته ایم) :
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
Button b3 = (Button) findViewById(R.id.button3);
Button b4 = (Button) findViewById(R.id.button4);
Button b5 = (Button) findViewById(R.id.button5);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// Do Something
break;
case R.id.button2:
// Do Something
break;
case R.id.button3:
// Do Something
break;
case R.id.button4:
// Do Something
break;
case R.id.button5:
// Do Something
break;
default:
break;
}
}
}
نام package را برابر com.kelidestan.com در نظر گرفته ایم که شما باید آن را مطابق نام package برنامه اندروید خود تغییر بدهید. همچنین، به خط زیر از کدهای Activity توجه کنید :
همان طور که مشاهده می کنید، کدهای زیر در انتهای عبارت نوشته شده است :
که معنای آن، اجرای کلاس OnClickListener توسط این Activity می باشد. این عبارت، برای عملکرد صحیح دکمه ها (Button)، باید حتما نوشته شود.
به بخش زیر از کدها توجه کنید :
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// Do Something
break;
case R.id.button2:
// Do Something
break;
case R.id.button3:
// Do Something
break;
case R.id.button4:
// Do Something
break;
case R.id.button5:
// Do Something
break;
default:
break;
}
}
در این کدها، 5 حالت (case) را در نظر گرفته ایم که در هر کدام از آنها، id مربوط به یک دکمه (Button) ذکر شده است. برای هر یک از این حالت ها، باید به جای عبارت // Do Something کدهای مورد نظر خود را بنویسید تا هنگام اشاره کاربر بر روی آن دکمه (Button)، آن کدها اجرا شوند.