نوشتن اولین کدهای جاوا در اندروید
خب، اکنون ما با کدی که یک خروجی را در logcat و یا در صفحه ی نمایش کاربر نشان می دهد، آشنا شده ایم. اما کجا باید از این کدها استفاده کنیم؟ فعلاً تنها کافیست با متد onCreate آشنا شویم. این متد هنگامی اجرا می شود که اپلیکیشن ما شروع به کار می کند و به کاربر نمایش داده می شود. بنابراین اگر ما کدهای خود را در انتهای این متد قرار دهیم، هنگام شروع به کار اپلیکیشن، اجرا می شود.
نکته:
از قبل می دانیم که برای اجرا شدن کدهای درون یک متد، باید آن متد را فراخوانی کنیم. در مقالات قبلی، ما برای دکمه های خود دو متد به نام های topClick و bottomClick تنظیم کردیم. و به زودی این متدها را خواهیم نوشت اما سوالی که پیش می آید این است که چه کسی متد onCreate را فراخوانی می کند؟ پاسخ این است که اندروید به هنگام کلیک کردن یا لمس کردن کاربر بر روی آیکن اپلیکیشن، این متد را فراخوانی می کند. در فصل 6 از این کتاب، که به بررسی چرخه ی حیات اندروید می پردازیم، دقیقاً مشخص می کنیم که کدها، کی و چگونه اجرا می شوند. فعلاً لازم نیست به طور عمیق این موضوع را درک کنید. زیرا هدف من(نویسنده) از طرح این موضوع، تنها آشنایی مقدماتی شما است.
اجازه دهید تا به سرعت این موضوع را امتحان کنیم. از قبل می دانیم که متد onCreate درست قبل از اینکه اپلیکیشن ما به طور واقعی اجرا شود، فراخوانی می شود. پس بیایید کدهای زیر را کپی کنیم و در متد onCreate از اپلیکیشن Hello Android الصاق(paste) کنیم. و سپس اپلیکیشن خود را اجرا کنیم تا نتیجه را مشاهده کنیم:
1. به آکولاد پایانی متد onCreate توجه کنید و سپس کدهای قرمز رنگ نشان داده شده در بین کدهای زیر را (قبل از آن) اضافه کنید:
کد
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
// Let's take a look at Toast and Log in action
Toast.makeText(this, "Can you see me",Toast.LENGTH_SHORT).show();
Log.i("info", "Done creating the app");
}
2. اکنون اگر به اندروید استودیو توجه کنید، خواهید دید که واژه های Log و Toast به رنگ قرمز در آمده اند. و درواقع نوعی خطا را به ما نشان می دهند. این خطا به این دلیل است که اندروید استودیو نمی داند که کلمات Log و Toast کلاس هستند، بنابراین ما باید این موضوع را برای اندروید استودیو تعریف کنیم و از دستور import استفاده کنیم. خوشبختانه انجام این کار، نیمه اتوماتیک است. پس در داخل متد onCreate کلیک کنید .
3. حالا دکمه ی Alt را نگه دارید و سپس کلید Enter را فشار دهید. برای هریک از واژه های Toast و Log باید این کار را انجام دهید، که در مجموع می شود 2 بار. پس از انجام این کار، اندروید استودیو دستور import را برای هریک از این کلاس ها، در بالا اضافه می کند( درواقع پکیج حاوی این کلاس ها را اضافه(import) می کند).
4. در اندروید استودیو، اسکرول کنید تا به بالای کدهای تب MyActivity.java برسید، و به دستورات جدید import شده نگاهی بیاندازید. کدهای مذکور به صورت زیر هستند:
مثال (نوشتن اولین کدهای جاوا در اندروید)
import android.util.Log;
import android.widget.Toast;
5. حالا اپلیکیشن خود را اجرا کنید.
تصویر زیر، خروجی ایجاد شده در پنجره ی logcat را نشان می دهد:
نکته: اگر قادر نیستید تا در میان انبوه اطلاعات نشان داده شده در logcat، این پیغام را مشاهده کنید، کافیست در فیلد نشان داده شده در تصویر زیر، عبارت بالا را مورد جستجو قرار دهید:
اگر به پنجره ی logcat نگاهی بیاندازید، متوجه خواهید شد که پیغام Done creating the app بعنوان خروجی، نمایش داده می شود. این پیغام ممکن است با دیگر پیغام ها مخلوط شده باشد. همچنین اگر شما هنگامی که این اپلیکیشن اجرا می شود، به شبیه ساز نگاه کنید، خواهید دید که یک پیغام پاپ آپ به کاربر نشان داده می شود. علت نشان داده شدن این پیغام ها به محض اجرا، این است که متد onCreate درست قبل از اینکه اپلیکیشن شروع به کار کند، اجرا می شود. اغلب در این متد کدهایی قرار می گیرند که اپلیکیشن را راه اندازی می کنند و آن را برای کاربر آماده می کنند. این موضوع بخشی از مبحث چرخه ی حیات اپلیکیشن های اندروید است که در فصل 6 به طور مفصل در مورد آنها بحث خواهیم نمود.
اکنون قصد داریم یک گام به جلو برویم و متدهایی که در دکمه های رابط کاربری(UI) آنها را فراخوانی کردیم را تعریف کنیم و بنویسیم. و قصد داریم به طور مشابه، در داخل این متدها، از پیغام های Log و Toast استفاده کنیم.
نوشتن متدهای شخصی جاوا
اجازه دهید تا مستقیماً به سراغ ایجاد اولین متدهای جاوای خود برویم و در داخل آنها از چند پیغام Log و Toast استفاده کنیم. بنابراین اندروید استودیو را اجرا کرده و پروژه ی Hello Android را باز کنید.
1. با توجه به علامت آکولاد بسته ی کلاس MyActivity، در داخل این کلاس، و درست پس از کدهای مربوط به متد onCreate، کدهای قرمز رنگ زیر را اضافه کنید:
کدها
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
// Let's take a look at Toast and Log in action
Toast.makeText(this, "Can you see me", Toast.LENGTH_SHORT).
show();
Log.i("info", "Done creating the app");
}
public void topClick(View v){
Toast.makeText(this, "Top button clicked",Toast.LENGTH_SHORT).show();
Log.i("info","The user clicked the top button");
}
public void bottomClick(View v){
Toast.makeText(this, "Bottom button clicked",Toast.LENGTH_SHORT).show();
Log.i("info","The user clicked the bottom button");
}
2. همان طور که در کدهای بالا مشاهده می کنید، در داخل هر متد، هر خط از کدها با یک سمی کالن(;) پایان می یابند. دقت کنید که هنگام کپی کردن کدهای قرمز رنگ بالا، تمامی موارد با درستی انتخاب شوند.
3. پس از کپی کردن کدها در اندروید استودیو، ممکن است واژه های View با رنگ قرمز نشان داده شوند و خطا ایجاد کنند. برای حل این مشکل، کلید های Alt + Enter را فشار دهید تا کلاس های View به پروژه اضافه(import) شوند. تا خطاها از بین بروند.
4. حالا اپلیکیشن خود را در داخل یک دستگاه واقعی و یا در داخل شبیه ساز اجرا کنید. حالا اگر بر روی هر یک از دکمه ها کلیک کنید، پیغام های مشخص شده ای به شما نشان داده می شود.
اکنون می توانیم مشاهده کنیم که متدهایی تعریف شده برای هر دکمه به هنگام کلیک کردن دکمه ها، به درستی اجرا می شوند. اما ما هنوز به درستی نمی دانیم که Log و Toast چگونه کار می کنند. همچنین نمی دانیم که عبارت public void و عبارت View v چه هستند. اما همان طور که به جلو می رویم با این موارد هم آشنا خواهیم شد.
بررسی خروجی کدها
اکنون اگر به پنجره ی logcat نگاه کنید، خواهید دید که یک پیغام Log توسط متد onCreate ایجاد شده است. و اگر بر روی هریک از دکمه ها نیز کلیک کنیم، پک پیغام Log نمایش داده خواهد شد. اما پیغام ایجاد شده توسط متد onCreate قبل از آنها قرار خواهد داشت.
همان طور که در تصویر زیر مشاهده می کنید، بر روی دکمه ی بالایی کلیک کرده ایم، و سپس تابع topClick فراخوانی می شود و پیغامی توسط کلاس Toast به صورت پاپ آپ نمایش داده می شود:
- نوشته شده توسط احسان عباسی
- بازدید: 11037