گروه کامپیوتر دانشگاه آزاد

اساتید و دانشجویان دانشگاه آزاد اسلامی

گروه کامپیوتر دانشگاه آزاد

اساتید و دانشجویان دانشگاه آزاد اسلامی

بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِیمِ
زکات علم، نشر آن است. گروه کامپیوتر دانشگاه آزاد با هدف خدمت به دانش آموزان ، دانشجویان و آنهایی که علاقه به برنامه نویسی و طراحی و کلیه امور تخصصی کامپیوتر دارند با هدف نشر علم خدمت رسانی کند امید است کاربران در جهت تحقق این اهداف والا یار و همدم ما باشند . . .

آخرین نظرات

سلام دوستان عزیز،امروز قصد داریم در مورد Button (باتن) در اندروید صحبت کنیم. یکی از مهم ترین عناصر در طراحی رابط کاربری باتن ها یا دکمه ها هستند.بنابراین ما در این پست به شما در مورد نحوه ایجاد یک دکمه و اضافه کرد ان به برنامه صحبت میکنیم،علاوه براین به شما نشان خواهیم داد که چگونه به بسته نرم افزاری خود یک دکمه با عملکرد خاص را اضافه کنیم.

با توجه به توضیحات مختصری که در بالا در مورد باتن ها گفته شد،زمان ان رسیده که شروع کنیم به کار،اکلیپس رو باز میکنیم و یک پروژه جدید ایجاد می کنیم.(ساخت و اجرای اولین برنامه اندرویدی)

اگر تصاویر کیفیتشان کم بود برای زیاد شدن کیفیتشان کافیست روی آنها کلیک کنید

کار با دکمه ها در اندروید

 

من یک پروژه با اسم Button ساختم،می بینید که در سمت چپ ایکلیپس بخش Pakege Explorer معماری نرم اافزار اندرویدی قرار داره  ما در پوشه Layout  یک فایل Xml به نام activity_main داریم،این فایل حاوی کدهای xml رابط کاربری اندروید است.با کلیلک بر روی این فایل یک صفحه سفید رنگ برای ما به نمایش در می اید،این صفحه سفید رنگ همان بخش طراحی رابط کاربری و لایه Activitiy اصلی برنامه ماست،با نگاه کردن به قسمت پایین دو تا تب به نام های  Graphica Layout رو می بینیم که قسمت نمایشی و گراافیکی لایه ااکتیویتی رو نمایش میده و تب دومی activity_main.xml هست که  بخش کدهای و ویرایش دستی اون ها رو در اختیار ما قرار میده.

حالا یک باتن(دکمه) به برنامه خودمون اضافه می کنیم،برای این کار ما دوتا راه داریم یکی از طریق اضافه کردن Button از قسمت Palette هاست و قسمت بعدی از طریق نوشتن کد هست.اسان ترین و مناسب ترین راه استفاده از Palette هاست.Palette در فرهنگ لغت به معنی جعبه رنگ امیزی است

در برنامه نویسی اندروید هم ما برای  طراحی رابط کاربری برنامه از قسمت Palette زیاد استفاده خواهیم کرد.میتویند لیست پالت ها رو در سمت چپ صفحه سفید رنگ برنامه مشاهده بکنید.حالا کافی که بر روی یک Button کلیک کنید و اون رو به سمت صفحه سفید رنگ (activity_main.xml) بکشد و در هر قسمت از از لایه که خواستین رهاش کنید.

کار با دکمه ها در اندروید

این طرحی رو که میبینید همون طرح گرافیکی نرم افزار ماست با کلیک بر روی تب activity_main.xml وارد قسمت کد نویسی دکمه میشیم.

کار با دکمه ها در اندروید

به کدهای ابی رنگی که علامت گذاری کردم توجه کنید:این کد با تگ RelativeLayout شروع شده نشان دهنده نوع لایه استنفاده شده است،من در اینجا یک توضیح مختصری در مورد RelativeLayout می نویسم اما در قسمت های بعدی اموزش ها و در رسید سطوح بالاتر  به شرح کامل اون، مزایا و معایبش خواهیم پرداخت.

در برنامه نویسی اندروید طرح بندی های مختلفی وجود داره،این طرح بندی های تمامی اجزای سازنده رابط کاربری برنامه رو در بر میگیره،یکی از این طرح بندی ها  RelativeLayout هست.این طرح بندی از رایج ترین لایه های اندروید به حساب میاد و دلیل اون انعطاف پذیری بالای این لایه است.به عنوان مثال اگر بخواهیم از چندین دکمه در برنامه خود استفاده کنیم طوری که دکمه ها (button) به شکل مناسبی کنار هم، بالا و یا پایین قرار بگیرند RelativeLayout به ما این امکان رو میده که براحتی در قسمت Graphica Layout دکمه های خودمون رو قرار بدیم بدون استفاده از کد نویسی!!

بعد از اینکه با قسمت های مختلف یک لایه اشنا شدیم،وقت اون رسیده که  اجزای تشکیل دهنده یک دکمه رو با هم برسی کنیم

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Button" />

دکمه ما تشکیل شده از یک تگ با عنوان Button، درداخل این تگ کد android:id قرار دارد وظیفه این کد معرفی کردن یک شناسه به دکمه است،که در هنگام نوشتن یک رویداد برای دکمه مد نظر اختلالی در کارکرد دکمه ها و یا اجزای دیگر لایه بوجود نیاید.

خاصیت android:layout_width عرض دکمه ما را در لایه مشخص میکند(هر یک از اجزای گرافیکی اندروید دارای خاصیت عرض و ارتفاع هستند).در این جا مقدار خاصیت  android:layout_width="wrap_conten معرفی شده است،Wrap Content این امکان را به ما میدهم تا عرض و ارتفاع دکمه خود را با توجه به نام ان تغییر دهیم(می توانید در خاصیت android:text به جای کلمه Button که نام دکمه ما هست نام دیگری را جایگزین کنید،من در اینجا از نام AppinApps استفاده کردم،میبینید که طول و عرض دکمه با توجه به نام وارد شده تغییر کرده است،مقاادیر دیگری هم می توانیم به طول و عرض دکمه اضافه کنیم،به تصاویر زیر دقت کنید

کار با دکمه ها در اندروید

 میبینید که با گرفتن هم زمان دکمه های Ctrl+Space بر روی کیبورد محیط ایکلیپس راهنمایی را برای راحتی و سرعت بخشیدن به کار برای ما معرفی میکند،این مقادیر که در تصویر بالا میبینیدfill_parent , match_parent  و wrap _contentهستند که هرکدام از این مقادیر خاصیت دکمه رو تغییر میدهند،من برای مثال Fill_parent رو انتخاب کردم،می بینیم که  عرض دکمه به اندازه عرض صفحه تغییر کرد(تصویر زیر)تمامی این مقادیر در خاصیت android:layout_height نیز استفاده می شوند.

کار با دکمه ها در اندروید

خاصیت android:layout_centerHorizontal:این خاصیت اجزای مورد استفاده در لایه اصلی برنامه رو در مرکزیت افقی  قرار میدهد،خاصیت android:layout_centerVertical: نیز همانند خاصیت بالا در مرکزیت لایه قرار میگیرد ولی با این تفاوت که اینبار مرکزیت عمودی مد نظر است.یعنی هم در حالت عمودی و هم در حالت افقی دکمه ما در مرکز لایه قرار داشته باشد.

بعد از اینکه لایه های یک اکتیوتی رو بررسی کردیم حالا وقت اون رسیده که کد های جاوا اکتیوتیمون رو ببینیم و با نحوه عمل کردش اشنا بشیم،در سمت چپ محیط ایکلیپس بر روی فولدر Src کلیک کنید،در زیرشاخه اون پکیج برنامه ما وجود داره که این پکیج در بر گیرنده تمامی منابع کد های جاواست.بعد از بارکردن پکیج :می بینیم که یک فایل جاوا با نام MainActivitiy.java وجود دارد،این فایل حاوی کدهای جاواای نرم افزار اندرویدی ما رو تشکیل میده.

کار با دکمه ها در اندروید

صویر بالا  نمایی از کد های جاوای اکتیوتی ما رو نشون میده،این صفحه حاوی نام پکیج برنامه ،Import های برنامه که مسئول اینپورت کردن(وارد کردن) کدهای اندروید به جاوا و کلاس MainActivity است. دستور یا تابع  زیر:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

نقطه شروع نرم افزار اندرویدی است که توسط کد setContentView محل لایه رو شناسایی کرده و تمامی اجزای که در لایه هستند رو میتونه بشناسه،می بینیم که در اینجا محل لایه  R.layout.activity_main معرفی شده که به منبع جاوای ما میگه که اجزای سازنده رابط کاربری مثل دکمه ها (button)در این قسمت وجود داره.

حلا با این توصیفات می خواهیم یک کد به قسمت جاوای برنامه مون اضافه کنیم تا وختی که بر روی دکمه کلیلک میشه یک متن رو به ما نشون بده،اول از همه باید دکمه ای که در لایه مون قرار داره رو به کدهای جاوا اضافه کنیم(تصویر زیر) کدهای که من به برنامه اضافه کردم رو نشون میده.

کار با دکمه ها در اندروید

این هم کدهای کامل بخش MainActivity.java

//نام پکیج
package com.appinapps.button;

//اینپرت های کدهای اندروید در محیط جاوا
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

//شروع کلاس جاوای برنامه ما
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	//معرفی دکمه وارد کردن نام و محل قرارگیری اون از لایه 
		Button btn = (Button) findViewById(R.id.button1);
		//این دستوردر هنگام کلیک کردن بر روی دکمه فراخوانی میشه و هر کدی رو که نوشته باشم رو اجرا میکنه 
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				//دستور توست برای نمایش یک متن کوتاه چند لحظه ای
				Toast.makeText(MainActivity.this, "سلام این یک مثال از نمایش پیغام هنگام کلیک دکمه بود با تشکر گروه کامیپوتر دانشگاه آزاد UnitAzad.ir!!", Toast.LENGTH_LONG).show();
			}
		});
		

}

الان میتونید برنامه تون رو اجرا کنید و نحوه عملکردش رو ببینید.

دانلود سورس پروژه ی Button                       دانلود فایل نصبی Apk پروژه Button

نظرات (۴)

سلام
اگر بخوایم یک دکمه بذاریم که رنگ textview های همون activity رو تغییر بده با استفاده از interface (با تابع) باید چیکار کنم میشه لطفا راهنمایی کنین

از اول هم همین رمز رو امتحان کردم و الان هم دوباره امتحان کردم ولی موقع باز کردن فایل ارور میده؟؟؟
پاسخ:
سلام الان تست می کنیم
سلام فایل زیپ برای باز شدن رمز میخواد لطفا رمز رو ذکر کنید ؟؟؟
پاسخ:
شرمنده کاربر عزیز رمز فایل www.unitazad.ir
سلام فایل زیپ برای باز شدن رمز میخواد لطفا رمز رو ذکر کنید ؟؟؟
پاسخ:
رمز فایل www.unitazad.ir  ممنون از انتخاب شما
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی