<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:id="@+id/button" android:layout_gravity="center_horizontal”/>
برای دکمه هم به ترتیب:
عرضش، ارتفاعش،متنش، آیدی(توضیح میدم) و محل قرارگیری در layout که اگر دقت کنید برای من وسط قرار دارد که با این هم بعدها کار داریم.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:id="@+id/button" android:layout_gravity="center_horizontal”/>
برای دکمه هم به ترتیب:
عرضش، ارتفاعش،متنش، آیدی(توضیح میدم) و محل قرارگیری در layout که اگر دقت کنید برای من وسط قرار دارد که با این هم بعدها کار داریم.
مهمترین چیزی که اینجا بود ID بود. به چه درد میخورد؟ گفتم که Layout در اندروید به یک Activity وصل هست. حالا در اکتیویتی چطوری مشخص کنیم اگر دکمه OK زده شد چه اتفاقی بیفتد؟ از کجا این را بفهمونیم؟ از روی ID. بهرحال نمیتوانیم بگوییم دکمه ای که زده شد و برنامه بفهمد منظور ما چه دکمه ای هست. باید یک اسم به آن بدهیم. و مثلا بگویم دکمه ای که اسمش هست btn وقتی زده شد به من پیام نشان بده. اینجا بصورت خودکار id را گذاشته button
خب عالیه حالا کافی هست برویم و به برنامه بفهمونیم میخواهم بهم پیام نشان بدهی. بریم سراغ اکتیویتی این layout. گفتم تنظیم کردن اتفاقهایی که در layout میفتد از طریق activity انجام میشود. از سمت چپ پوشه src را باز کنید و حالا داخل com.example.First بشوید و اکتیویتی را باز کنید
بالارو ببینید. نوشته class MyActivity . همانطور که گفتم اکتیویتی ها کلاس هستند. به بقیش کار نداشته باشید بیایم داخل oncreate که جلسه قبل توضیحشو دادم. حالا میخواهیم کد مربوط به نمایش پیام را بزنیم داخل oncreate شروع کنید به نوشتن. یعنی بین } , { مربوط به Oncreate
و البته باید بگویم که همانطور که دیدید مثل کلاس انسان که رویداده آمدن را برایش تعریف کردم، اکتیویتی هم کلاسی هست که یکی از رویدادهاش Oncreate هست. به مرور با بقیه رویدادهایش هم آشنا میشویم.
حالا این کدی که نوشتم را نگاه کنید. میخواهم نشان دهم چه معنایی میدهد البته در یکی دو جلسه آینده که عمیق تر به بحثهای عمیق تر پرداختیم بیشتر متوجه میشوید. برای اینکه تغییرات یک دکمه را بررسی کنیم باید اول در کد معرفیش کنیم. برای معرفی کردنش هم باید بهش بگوییم منظورمان دکمه ای هست که آیدیش x هست. این دقیقا میشود جمله من:
Button btn = findViewById(R.id.button);
حالا این کدی که نوشتم را نگاه کنید. میخواهم نشان دهم چه معنایی میدهد البته در یکی دو جلسه آینده که عمیق تر به بحثهای عمیق تر پرداختیم بیشتر متوجه میشوید. برای اینکه تغییرات یک دکمه را بررسی کنیم باید اول در کد معرفیش کنیم. برای معرفی کردنش هم باید بهش بگوییم منظورمان دکمه ای هست که آیدیش x هست. این دقیقا میشود جمله من:
Button btn = findViewById(R.id.button);
اما کدی که نوشتم یک بخش دیگرم دارد. (Button)
این findViewById یک تابع هست. که ورودی بهش یه آیدی میدهیم. و میرود و برایمان پیدایش میکند. (فعلا به R کار نداشته باشید).
اما خروجیش از جنس Button نیست بلکه از جنس View هست. View را بیشتر توضیح میدهم اما بدانید که همه ابزارهای ما در صفحه از جنس view هستند. پس تابع findViewById نمیداند چه چیزی پیدا کرده. فقط یک آیدی گرفته و پیدا کردتش برای ما. برای اینکه این view را ذخیره کنیم و ازش استفاده کنیم (که همان دکمه خودمان هست) باید تبدیلش کنیم به Button.
(Button) = Cast to Button
این findViewById یک تابع هست. که ورودی بهش یه آیدی میدهیم. و میرود و برایمان پیدایش میکند. (فعلا به R کار نداشته باشید).
اما خروجیش از جنس Button نیست بلکه از جنس View هست. View را بیشتر توضیح میدهم اما بدانید که همه ابزارهای ما در صفحه از جنس view هستند. پس تابع findViewById نمیداند چه چیزی پیدا کرده. فقط یک آیدی گرفته و پیدا کردتش برای ما. برای اینکه این view را ذخیره کنیم و ازش استفاده کنیم (که همان دکمه خودمان هست) باید تبدیلش کنیم به Button.
(Button) = Cast to Button
یعنی تبدیل کردن به باتن با کد بالا صورت میگیرد.
حالا کله کار صورت گرفته را در یک دکمه که خودم اسمش رو دادم btn ذخیره میکنیم
و کد من شد:
Button btn = (Button) findViewById(R.id.button);
حالا کله کار صورت گرفته را در یک دکمه که خودم اسمش رو دادم btn ذخیره میکنیم
و کد من شد:
Button btn = (Button) findViewById(R.id.button);
حالا بهش بگوییم کلیک شدی میخواهیم یک کاری انجام بدهی.
اینطور اتفاقات مثل کلیک شدن برای ابزار ها به عنوان Listener بیان میشوند. یعنی انگار سیستم عامل منتظر هست تا ببیند کسی کلیک شد(Listen) و حالا وقتی این اتفاق افتاد باید یک کاری را برای این اتفاق set کند.
بزنید:
btn.setO
کد نصفه است؟ خب خوده intellij کاملش میکند. خاصیت کامل کردن اتوماتیک خیلی قوی دارد. همین کد بالا را که بنویسید براتون یک لیست میاد که یک گزینش هست
setOnClickListener
اون را برید رویش و enter بزنید و خودش مینویسد
btn.setOnClickListener();
خب تا الان یه رویداد تعریف کردیم برای موجودیت دکمه (همون مثال انسان و آمدن را یاد بیارید)
حالا بعنوان ورودی باید بهش این را بدهید:
new View.OnClickListener()
اینطور اتفاقات مثل کلیک شدن برای ابزار ها به عنوان Listener بیان میشوند. یعنی انگار سیستم عامل منتظر هست تا ببیند کسی کلیک شد(Listen) و حالا وقتی این اتفاق افتاد باید یک کاری را برای این اتفاق set کند.
بزنید:
btn.setO
کد نصفه است؟ خب خوده intellij کاملش میکند. خاصیت کامل کردن اتوماتیک خیلی قوی دارد. همین کد بالا را که بنویسید براتون یک لیست میاد که یک گزینش هست
setOnClickListener
اون را برید رویش و enter بزنید و خودش مینویسد
btn.setOnClickListener();
خب تا الان یه رویداد تعریف کردیم برای موجودیت دکمه (همون مثال انسان و آمدن را یاد بیارید)
حالا بعنوان ورودی باید بهش این را بدهید:
new View.OnClickListener()
اما نشینید این را بنویسید. کافی هست داخل پرانتزه بنویسید new On
حواستان باشه on با O بزرگه و intellij به حروف بزرگو کوچیک حساسه هست. کوچیک بنویسید نمیارتش. در لیستی که باز میکند انتخاب کنید:
OnClickListener
حواستان باشه on با O بزرگه و intellij به حروف بزرگو کوچیک حساسه هست. کوچیک بنویسید نمیارتش. در لیستی که باز میکند انتخاب کنید:
OnClickListener
حالا کافی هست در آن وسط درخواست نمایش پیام بدهید که کدش بصورت زیر هست. ببینید تا توضیح بدم:
Toast.makeText(getApplicationContext(),"salam",Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),"salam",Toast.LENGTH_LONG).show();
خب دوباره Toast یه موجوده هست! ازش میخواهم که یک متن را بسازد. یعنی makeText که یک تابع است که سه تا ورودی میگیرد. توجه کنید ورودیهای توابع با علامت کاما جدا میشودند:
ورودی اول. میخواهم بگوبم کجا نشان بده این پیام را. خب مسلم هست در همین برنامه. پس از
getApplicationContext()
استفاده میکنم.
ورودی اول. میخواهم بگوبم کجا نشان بده این پیام را. خب مسلم هست در همین برنامه. پس از
getApplicationContext()
استفاده میکنم.
ورودی دوم: چه چیزی را نشان کاربر بدهیم؟ مثلا من زدم "salam"
ورودی آخر... چقدر پیام روی صفحه باشد؟ که دو نوعه
LENGTH_LONG = tulani
LENGTH_SHORT = kutah
و در آخر این پیام ساخته شده را ازش میخواهم نشان بدهد یعنی
.show()
ورودی آخر... چقدر پیام روی صفحه باشد؟ که دو نوعه
LENGTH_LONG = tulani
LENGTH_SHORT = kutah
و در آخر این پیام ساخته شده را ازش میخواهم نشان بدهد یعنی
.show()
تمام! حالا همان مثلث سبزه اون بالا را بزنید. از برنامه اجرا بگیرید تو گوشیتان... این الان گوشی من هست:
شاید با یک سری مفاهیم مشکل داشته باشید و من از روی آنها گذشته باشم. کم کم یاد میگیریمشون نگران نباشید.
خسته نباشید
خسته نباشید