کار کردن با Button در اندروید
در اندروید Button دکمه هایی است که امکان تعامل هرچه بیشتر برنامه را با کاربر فراهم می سازد و بیشتر به منظور انجام عملیات های مختلف و محسوس مانند رفتن به اکتیویتی دیگر ، بستن برنامه ، شروع عملیات هایی همچون جستجو و … تعبیه شده است تا کاربر در صورت خواست بتواند به عملیات مورد نظر خود دسترسی پیدا کند. دقت کنید که این ویو را می توان از جمله پرکاربردترین عناصر مختلف در اندروید دانست که برنامه نویس قبل هر چیزی می بایست به با نحوه برنامه نویسی آن آشنایی لازم را داشته باشد. از انواع مختلف دکمه های مورد استفاده در آندروید می توان از دکمه های CompoundButton، ToggleButton، RadioButton نام برد که در این سرفصل آموزشی به تک تک موارد یاده شده خواهیم پرداخت .
نحوه اضافه کردن Button به پروژه:
بطور کلی دو روش برای ایجادbutton وجود دارد. راه حل اول از طریق افزودن از طریق فایل XML که به شکل زیر می باشد.
در این روش در فایل XML همانند فایل activity_main.xml و در داخل لایوت های اصلی یا فرعی ، تگ شروع شونده Button> را تایپ کرده و سپس سایر ویژگی های مربوط به آن همانند متن داخل آن ، رنگ متن ، بک گراند و … را اضافه می کنیم و سپس با تگ پایانی /> آن را می بندیم. به کدهای زیر دقت کنید:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="match_parent" اندازه طول باتن android:layout_height="wrap_content" اندازه عرض باتن android:text="@string/yourtextbutton" android:background="@drawable/myimagebackround button" پشت زمینه باتن که از عکس موجود در پوشه استفاده شده android:id="@+id/button1" ایدی یا شناسه باتن style="@style/AlertDialog.AppCompat" استایل یا شکل ظاهری باتن android:textColor="@color/colorAccent" رنگ متن داخل باتن android:layout_marginTop="50sp" موقعیت قرارگیری از بالای صفحه android:layout_marginLeft="50sp" موقعیت قرارگیری از سمت چپ صفحه android:textSize="@dimen/size_font" اندازه فونت متن داخل باتن android:layout_above="@+id/mytextview" موقعیت قرار گیری نسبت به سایر ویوها android:layout_below="@+id/mybutton2" موقعیت قرار گیری نسبت به سایر ویوه /> </LinearLayout>
همانطور که در کد بالا می بینید دکمه Button در داخل لایوت اصلی ما یعنی قرار دارد و حاوی ویژگی هایی است که در برنامه به هنگام اجرای آن بر روی آن اعمال می شود.
روش دوم اضافه کردن ویو button به برنامه از طریق برنامه نویسی در کلاس است که با توجه به سطح آموزشی مقدماتی این پکیج می توانید آن را در آموزش های تخصصی تر این سایت دنبال کنید.
اما عزیزان دقت داده شده باشید آنچه برای ما مهم است نحوه فراخوانی این عنصر ایجاد شده به منظور اعمال برخی عملیات ها در کلاس مرتبط با آن است. به همین منظور تمامی ویوهای موجود در فایل XML را از طریق ایدی یا شناسه مرتبط با آن ویو در کلاس فراخوانی می کنیم. که در مثال ذکر شده ایدی باتن به شکل زیر تعریف شده است:
android:id=”@+id/button1″
برای فراخوانی باتن و سایر ویوها برای منظور برنامه نویسی در کلاس از متد
findViewById(R.id.yourid)
استفاده می کنیم.
به همین منظور لازم است در کلاس ها اولاً فایل XML مرتبط با کلاس مشخص شود. یعنی ما باید مشخص کنیم که قصد فراخوانی چه چیزی را از کدام فایل XMl داریم که در کد زیر در دستور مشخص شده با رنگ قرمز مشخص شده است و سپس آن ویو یا عنصر مورد نظر در فایل مربوطه را بر اساس شناسه آن فراخوانی می کنیم و آن در متغیری از نوع خود ذخیره می کنیم.
package com.example.psrd.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.button1);
}
}
تا اینجا ما توانستیم Button مورد نظر خود را در فایل Xml ایجاد کرده و آن را به کلاس موردنظر خودمان فراخوانی کنیم. اکنون لازم است تعیین کنیم که در صورت کلیک کاربر بر روی Button قرار است چه اتفاقی بیفتد. بدین منظور لازم است از کلاس setOnClickListener استفاده کنیم.
به مثال زیر توجه کنید:
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //عملیاتی که بعد از کلیک کردن کاربر بر روی باتن اتفاق خواهد افتاد } }); } }
به منظور درک بهتر توضیحات فوق نظر شما را به مثالی جلب می کنیم. در این مثال قرار است کاربر با کلیک کردن بر روی Button پیامی در زیر بشکل Toast نمایش داده شود. اینکه Toast چیست در جلسه بعدی خدمتتان دوستان توضیح خواهیم داد.
اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را ایجاد کنید
اکلیپس :File ⇒ New Android ⇒ Application Project
اندروید استودیو :File ⇒ New ⇒ New Project
اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk و نوع اکتیویتی (blank یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود را همان MainActivity قرار دهید.
در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml زیر را به آن اضافه کنید:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Click Me" android:id="@+id/button1" android:textColor="@color/colorAccent" android:layout_marginTop="50sp" android:textSize="20sp" /> </LinearLayout>
سپس به سراغ کلاس MainActivity رفته و کدهای زیر را در داخل آن قرار می دهیم. دقت کنید که به پکیج مورد نظر خود در بالای صفحه دست نزنید و بعد آن کدهای موردنظرتان را قرار دهید.
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplication(),"Your Clicked On button",Toast.LENGTH_LONG).show(); } }); } }
حال برنامه را اجرا کرده و نتیجه کار خود را ببینید. اگر به مشکل خاصی برخورد کردید در قسمت دیدگاه مشکل خود را با نویسنده سایت در میان بگذارید.
0 دیدگاه