آموزش برنامه نویسی اندروید

آموزش ساختن برنامه برای اندروید به زبان فارسی
پنجشنبه, ۱۹ دی ۱۳۹۲، ۰۱:۰۸ ق.ظ

دکمه‌ها

تماشای برخط [لینک مستقیم] فیلم آموزشی «دکمه»

زیر نویس انگلیسی [English Subtitle]

دریافت نسخه‌ی pdf این آموزش [325 کیلوبایت]

تا اینجا هرجا خواستیم از دکمه استفاده کنیم، از همون نوع سنتی و ساده‌اش استفاده کردیم، حالا می‌خوایم یاد بگیریم چطور از انواع دیگه‌ی دکمه استفاده کنیم.

۱. اول یه پروژه‌ی اندروید بسازید. (تصویر متحرک ساختن پروژه) بعد می‌تونیم در فایل activity_main.xml (در res->layout) از قسمت Palette انواع مختلف دکمه‌ها رو امتحان کنیم، الان اونی که روش نوشته off رو بکشید و روی صفحه بندازید.

 

، این نوع دکمه برای خاموش روشن کردن تنظیمات دلخواه به کار می ره و این طوریه toggle button

شما می‌تونید به راحتی ظاهرش رو تغییر بدید و مناسب برنامه‌تون بکنید و می‌بینید که چقدر کار رو ساده کرده.

از انواع دیگه‌ی دکمه، دکمه‌ی رادیویی (radio) و دکمه‌ی علامت‌صحیح (checkbox) هستند که می‌تونید از تو palette وارد صفحه‌تون بکنید.

۲.وقتشه یاد بگیریم چطور به دکمه‌ها فرمان بدیم و برنامه‌ریزی کنیم. تو آموزش‌های قبلی یاد گرفته بودید که برای کنترل یک دکمه می‌تونید تابع مربوط به کلیک شدن‌شو تو خودش درست کنید، اما اون کار برای وقتایی مناسبه که یکی دوتا دکمه کلاً داشته باشید، اگر بخواید تعداد دکمه‌های بیشتری استفاده کنید بهتره از روش‌ دیگه‌ای استفاده کنید که الان توضیح می‌دم.

فایل MainActivity.java (در پوشه src) رو باز کنید، برای بهینه شدن استفاده از دکمه‌ها می‌تونیم به کلاس فعالیت (activity) بگیم که واسط گوش‌کننده‌به‌کلیک (onClickListener) رو پیاده‌سازی بکنه. یعنی کد شروع کلاس این طوری بشه:

public class MainActivity extends Activity implements OnClickListener {

با این کار ما می‌تونیم مستقیما تو کلاسمون به رخدادها واکنش نشون بدیم.

۳.وقتی قسمت implements رو به کلاسمون اضافه می‌کنیم، زیر OnClickListener خط قرمز می‌کشه، روش که ctrl+1 رو بزنیم یه گزینه میاره که (import 'OnClickListener' (android.view.view که وقتی این گزینه رو انتخاب می‌کنیم اونوقت زیر MainActivity خط قرمز می‌کشه، با فشردن ctrl+1 روی اون هم گزینه add unimplemented methods رو بزنید تا تابع مربوط به این پیاده‌سازی رو بسازه.

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

۴.پس کاری که ما الان قراره انجام بدیم اینه که برای هر کدوم از دکمه‌ها باید گوش‌کننده‌به‌کلیک (onClickListener) رو سوار کنیم. و داخل تابعش به جای اینکه مثل قبل یه گوش‌کننده‌به‌کلیک رو توش نمونه‌گیری کنیم، می نویسیم this، یعنی همین فعالیتی که توش قرار داریم. تو این فعالیت هم فقط یه تابع onClick وجود داره که وقتی دکمه dokme رو بزنیم اونو اجرا می‌کنه.

Button dokme = (Button) findViewById (R.id.toggleButton1);
dokme.setOnClickListener(this);

۵.همین کارو برای بقیه‌ی دکمه‌ها باید انجام بدیم، خوبی این کار اینه که هی کلاس اضافه برای هر دکمه جداگانه تعریف نمی‌شه و کارآمدی و سرعت برنامه به میزان قابل توجهی بالا می‌ره.

توی تابع onClick ما باید اول شناسه (id) اون شی‌ای که این تابع رو فراخوانی کرده بدست بیاریم تا بتونیم با توجه به اون شناسه، کار مربوط به همون دکمه رو انجام بدیم. تابع گرفتن اون شناسه اینه : ()arg0.getId 

می‌تونیم با گذاشتن عبارات شرطی مقدار ()arg0.getId رو بررسی کنیم. خوب مثلا بیاید برای اون دکمه‌ی خاموش روشنی که گذاشتیم یه عبارت شرطی بذاریم که اگه کلیک شد، تو LogCat بنویسه !dokmeye khamoosh roshan click shod

@Override
	public void onClick(View arg0) {
		if (arg0.getId() == R.id.toggleButton1) {
			Log.d("AC","Dokmeye khamoosh roshan click shod!");
		}
	}

بعد از این کار وقتی شبیه‌ساز رو اجرا می‌کنیم و روی دکمه خاموش روشن کلیک می‌کنیم، پیغامی که تنظیم کرده بودیم توی LogCat نمایش داده می‌شه.

پس یه روش جدید یادگرفتیم که فقط با یک تابع گوش‌کننده‌به‌کلیک توابعمون رو مدیریت کنیم.

۶.یه نوع دکمه‌ی دیگه هم داریم به اسم دکمه‌ی‌عکس‌دار (ImageButton) که در palette در زیرشاخه  Images & Media قرار داره که کاملا مشخصه که برای درست کردن دکمه‌ی عکس‌دار بکار می‌ره. این نوع دکمه رو وقتی می‌کشید روی صفحه و رها می‌کنید، ازتون می‌خواد که منبع عکسش رو انتخاب کنید که یا می‌تونید از عکس‌های سیستمی اندروید استفاده کنید یا عکس‌های دلخواه خودتون.

فهرست مطالب

ادامه آموزش: فهرست (list)



نوشته شده توسط وجدانی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

آموزش برنامه نویسی اندروید

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

اگه هر کدوم از لینک هایی که گذاشتم کار نمی کرد حتما منو از طریق قسمت نظرات یا ایمیل مطلع کنید.
Email : AndroidCode@ymail.com

امام علی (ع) : هر عملی که با بسم الله الرحمن الرحیم شروع شود با برکت است.

آخرین نظرات

  • ۲ فروردين ۰۱، ۱۲:۱۱ - سعید حسین پور
    عالی ...

پیوندهای روزانه

دکمه‌ها

پنجشنبه, ۱۹ دی ۱۳۹۲، ۰۱:۰۸ ق.ظ

تماشای برخط [لینک مستقیم] فیلم آموزشی «دکمه»

زیر نویس انگلیسی [English Subtitle]

دریافت نسخه‌ی pdf این آموزش [325 کیلوبایت]

تا اینجا هرجا خواستیم از دکمه استفاده کنیم، از همون نوع سنتی و ساده‌اش استفاده کردیم، حالا می‌خوایم یاد بگیریم چطور از انواع دیگه‌ی دکمه استفاده کنیم.

۱. اول یه پروژه‌ی اندروید بسازید. (تصویر متحرک ساختن پروژه) بعد می‌تونیم در فایل activity_main.xml (در res->layout) از قسمت Palette انواع مختلف دکمه‌ها رو امتحان کنیم، الان اونی که روش نوشته off رو بکشید و روی صفحه بندازید.

 

، این نوع دکمه برای خاموش روشن کردن تنظیمات دلخواه به کار می ره و این طوریه toggle button

شما می‌تونید به راحتی ظاهرش رو تغییر بدید و مناسب برنامه‌تون بکنید و می‌بینید که چقدر کار رو ساده کرده.

از انواع دیگه‌ی دکمه، دکمه‌ی رادیویی (radio) و دکمه‌ی علامت‌صحیح (checkbox) هستند که می‌تونید از تو palette وارد صفحه‌تون بکنید.

۲.وقتشه یاد بگیریم چطور به دکمه‌ها فرمان بدیم و برنامه‌ریزی کنیم. تو آموزش‌های قبلی یاد گرفته بودید که برای کنترل یک دکمه می‌تونید تابع مربوط به کلیک شدن‌شو تو خودش درست کنید، اما اون کار برای وقتایی مناسبه که یکی دوتا دکمه کلاً داشته باشید، اگر بخواید تعداد دکمه‌های بیشتری استفاده کنید بهتره از روش‌ دیگه‌ای استفاده کنید که الان توضیح می‌دم.

فایل MainActivity.java (در پوشه src) رو باز کنید، برای بهینه شدن استفاده از دکمه‌ها می‌تونیم به کلاس فعالیت (activity) بگیم که واسط گوش‌کننده‌به‌کلیک (onClickListener) رو پیاده‌سازی بکنه. یعنی کد شروع کلاس این طوری بشه:

public class MainActivity extends Activity implements OnClickListener {

با این کار ما می‌تونیم مستقیما تو کلاسمون به رخدادها واکنش نشون بدیم.

۳.وقتی قسمت implements رو به کلاسمون اضافه می‌کنیم، زیر OnClickListener خط قرمز می‌کشه، روش که ctrl+1 رو بزنیم یه گزینه میاره که (import 'OnClickListener' (android.view.view که وقتی این گزینه رو انتخاب می‌کنیم اونوقت زیر MainActivity خط قرمز می‌کشه، با فشردن ctrl+1 روی اون هم گزینه add unimplemented methods رو بزنید تا تابع مربوط به این پیاده‌سازی رو بسازه.

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

۴.پس کاری که ما الان قراره انجام بدیم اینه که برای هر کدوم از دکمه‌ها باید گوش‌کننده‌به‌کلیک (onClickListener) رو سوار کنیم. و داخل تابعش به جای اینکه مثل قبل یه گوش‌کننده‌به‌کلیک رو توش نمونه‌گیری کنیم، می نویسیم this، یعنی همین فعالیتی که توش قرار داریم. تو این فعالیت هم فقط یه تابع onClick وجود داره که وقتی دکمه dokme رو بزنیم اونو اجرا می‌کنه.

Button dokme = (Button) findViewById (R.id.toggleButton1);
dokme.setOnClickListener(this);

۵.همین کارو برای بقیه‌ی دکمه‌ها باید انجام بدیم، خوبی این کار اینه که هی کلاس اضافه برای هر دکمه جداگانه تعریف نمی‌شه و کارآمدی و سرعت برنامه به میزان قابل توجهی بالا می‌ره.

توی تابع onClick ما باید اول شناسه (id) اون شی‌ای که این تابع رو فراخوانی کرده بدست بیاریم تا بتونیم با توجه به اون شناسه، کار مربوط به همون دکمه رو انجام بدیم. تابع گرفتن اون شناسه اینه : ()arg0.getId 

می‌تونیم با گذاشتن عبارات شرطی مقدار ()arg0.getId رو بررسی کنیم. خوب مثلا بیاید برای اون دکمه‌ی خاموش روشنی که گذاشتیم یه عبارت شرطی بذاریم که اگه کلیک شد، تو LogCat بنویسه !dokmeye khamoosh roshan click shod

@Override
	public void onClick(View arg0) {
		if (arg0.getId() == R.id.toggleButton1) {
			Log.d("AC","Dokmeye khamoosh roshan click shod!");
		}
	}

بعد از این کار وقتی شبیه‌ساز رو اجرا می‌کنیم و روی دکمه خاموش روشن کلیک می‌کنیم، پیغامی که تنظیم کرده بودیم توی LogCat نمایش داده می‌شه.

پس یه روش جدید یادگرفتیم که فقط با یک تابع گوش‌کننده‌به‌کلیک توابعمون رو مدیریت کنیم.

۶.یه نوع دکمه‌ی دیگه هم داریم به اسم دکمه‌ی‌عکس‌دار (ImageButton) که در palette در زیرشاخه  Images & Media قرار داره که کاملا مشخصه که برای درست کردن دکمه‌ی عکس‌دار بکار می‌ره. این نوع دکمه رو وقتی می‌کشید روی صفحه و رها می‌کنید، ازتون می‌خواد که منبع عکسش رو انتخاب کنید که یا می‌تونید از عکس‌های سیستمی اندروید استفاده کنید یا عکس‌های دلخواه خودتون.

فهرست مطالب

ادامه آموزش: فهرست (list)

نظرات  (۱۵)

۰۳ بهمن ۹۶ ، ۰۹:۳۱ خانه هوشمند
خیییلی ممنونم ---سایتتون خیلی عالیه

اقا خدا خیرت بده

یه دنیا ممنون

سلام
چه طوری میشه مطالب روی تصویر زمینه حرکت داد؟
فقط اسکرول نباشه

سلام من چهارده سالمه خیلی دوست دارم برنامه نویسی اندروید رو یاد بگیرم آیا خیلی سخته برای یادگیری زبان های لازمه؟
پاسخ:
سلام، بستگی به میزان علاقه تون داره، اگر تلاش و پشتکارتون خوب باشه، حتما می تونید.
سلام من دوازده سالمه میتونم تو این سن برنامه نویسی کنم؟
پاسخ:
سلام، چرا که نه، خیلی خوبه که از سنین نوجوانی شروع به این کارکنید، من هم خودم تقریبا از همین سنین شروع کردم
موفق باشی :)
سلام
آقا خیییییییییییلی باحالی
داش این برای کسی که مبتدی باشه خداییش بدرد نمیخوره
پاسخ:
از ابتدای آموزش ها شروع کنید، خیلی سعی کردم به درد مبتدی ها بخوره.
اقایید بخدا دمتون گرم ایول ...خسته نباشید
کارتون حرف نداره. واقعا متشکرم...
سلام
انصافا زحمت می کشید
صمیمانه از شما تشکر می کنم
موفقیت و در اوج بودن حق شماست
موفقیتتان را آرزومندم
۲۲ دی ۹۲ ، ۱۳:۱۰ حسین امیرابادی
ببخشا زیاد سوال می پرسم،
میشه یه کمک دیگه بکنی، من وقتی تکست باتن هارو فارسی می نویسم تو رابط کاربری حروف از هم جدا نشون داده می شه، تو اجرای برنامه هم همینطوره
توی string.xml هم یه متغیر فارسی تعریف کردم اما بازم همون مشکل هست.
چیکار کنم که کلمات فارسی رو درست نشون بده...؟؟؟
ممنوووون
پاسخ:
به نکته‌ی آخر آموزش بعدی نگاه کنید. باید نسخه‌ی شبیه‌سازتون از Android 3.0 بیشتر باشه
۲۲ دی ۹۲ ، ۱۲:۲۳ حسین امیرابادی
دستت طلا...
حل شد
بازم یه دنیا ممنووون 
۲۰ دی ۹۲ ، ۱۱:۳۷ حسین امیرابادی
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
رفیق فقط یه توضیح میدی که بعد از اون if اول که نوشتیم دستورات بعدی رو چجوری وارد کنیم؟؟؟؟
چون من با هر روش دیگه ای که به ذهنم رسید واسه یه فعالیت دیگه زیر اون if کد نوشتم فقط اولین دکمه و ایف کار میکنه بقیه دکمه ها کار نمی کنن...
بازم یه دنیا ممنووووووون  **
پاسخ:
کل کد فایل MainActivity.java من اینه، با مال خودتون بررسی کنید ببینید اگه کپی همینه و کار نمی کنه، بگید
package ir.androidcode;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
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 dokme = (Button) findViewById (R.id.toggleButton1);
		dokme.setOnClickListener(this);
		Button dokmeR = (Button) findViewById (R.id.radioButton1);
		dokmeR.setOnClickListener(this);
		Button dokmeA = (Button) findViewById (R.id.checkBox1);
		dokmeA.setOnClickListener(this);

	}
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onClick(View arg0) {
		if (arg0.getId() == R.id.toggleButton1) 
			Log.d("AC","Dokmeye khamoosh roshan click shod!");
		if (arg0.getId() == R.id.radioButton1)  
			Log.d("AC","Dokmeye radioyi click shod!");
		if (arg0.getId() == R.id.checkBox1) 
			Log.d("AC","Dokmeye alamat sahih click shod!");		
		}


}
آقا دمت گرم 
واقعا مردییییییییییییییی
فقط جون جدت یکم تند تر پست بذار
ولی بازم دمت خیلی گرممممممممممممممممممم
سلام. خداقوت
پاسخ:
سلام ممنون

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">