همون طور که می دونید موقعی که یک پروژه جدید ایجاد می کنیم با توجه به نوع اکتویتی که در مراحل ساخت پروژه (معمولاً Empty activity یا Basic Activity) انتخاب می کنیم یک اکتویتی و لیوت بطور خودکار توسط اندروید استادیو برامون ایجاد میشه که اسم  اونا رو  قبل از ساختن وارد می کنیم.(معمولا MainActivity.java و activity_main.xm هستند که اکثراً اونا رو پیش فرض باقی میگذاریم)

یک پروژه جدید بسازید:

نام اپلیکیشن : NewActivity
نام دامین اپلیکیشن :apk.manoandroid.com
سطح API اپلیکیشن : ۱۵
نوع اکتیوتی : Empty activity
نام اکتیوتی : پیش فرض باقی بگذارید (MainActivity.java)
نام لیوت : پیش فرض باقی بگذارید. (activity_main.xml)

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

نحوه ساختن یک اکتیوتی جدید
برای این کار از پنحره Project Explore و از مسیر app/java روی نام پکیج اپلیکیشنتون کلیک راست کرده و  از منوی باز شده گزینه New را انتخاب و در نهایت از بخش Activity بر روی Empty Activity کلیک کنید.
عکس
حال پنجره ای مطابق تصویر زیر براتون باز میشه :

Activity Name : نام اکتیوتی که میخواهیم بسازیم ( بگذارید SecondActivity ).
Generate Layout File :از اونجایی که (اغلب) هر اکتیوتی یک فایل لیوت برای خودش داره در صورتی دوست دارید با ساختن این اکتیوتی یک فایل لیوت هم به طور خودکار برای اکتیویتی تون ساخته بشه تیک گزینه Generate Layout File را بزنید . (در صورت فعال کردن این گزینه یک کادر با نام Layout Name برای وارد کردن نام لیوت نمایش داده میشه).
Layout Name : نام لیوتی رو که می خواهید برای اکتیوتی تون ساخته بشه رو انتخاب کنید.(خود اندروید استادیو به صورت خودکار نام لیوت رو با توجه به نام اکتیوتی شما ، ایجاد می کند در صورت دلخواه می توانید آن را تغییر دهید.)
package Name : در این بخش می تونیم پکیج مقصد رو مشخص کنیم .پیش فرض پکیج اپلیکیشن انتخاب میشود که مناسب هست.
پس از وارد کردن اطلاعات با کلیک کردن روی Finish  به طور خودکار محتویات اکتیوتی جدید برای شما نمایش داده میشود .
در تصویر زیر  فایل اکتیویتی (SecondActivity)  و فایل لیوت مربوط به آن (activity_second.xml) را در Project Explorer مشاهده می کنید.

کدهای زیر مربوز به اکتیویتی  (SecondActivity) می باشند :

همین طور که می بینید در خط ۱۱ دستور زیر وجود دارد :

تابع setContentView() آدرس یک فایل  لیوت رو میگیره و اون رو بر روی صفحه نمایش دستگاه نشون میده.پس وقتی خط بالا اجرا میشه لیوت (activity_second) بر روی مانیتور دستگاه نمایش داده میشه.

با ساختن یک اکتیویتی به این روش چه تغییراتی به طور خودکار برای ما ایجاد می شوند ؟!!
۱- یک فایل اکتیوتی جدید با نامی که انخاب کردیم در فولدر “app/java/packega_name ” ایجاد می شود.
۲- در صورتی که هنگام ساختن این اکتیوتی گزینه Generate Layout File رو فعال کرده باشید یک فایل لیوت هم برای شما ساخته میشود.مسیر این فایل در فولدر “app/res/layout”می باشد.
۳- در صورتی که اکتیوتی و لیوت مون رو توسط این روش ایجاد کنیم ، به طور خودکار دستور setContentView(R.layout.“***Layout_name***”); در سند اکتیوتی ما قرار داده می شود.(منظور از ***Layout_name*** نام Layout ایجاد شده می باشد)همان طور که ذکر کردیم این دستور لیوتی که بهش دادیم رو بر روی صفحه نمایش دستگاه نشون میده.
۴- بصورت خودکار اکتیوتی ما  در سند Manifest تعریف می شود.(در جلسات آتی با این سند اشنا می شیم ولی فعلا در همین حد بدونید که هر اکتویتی که ایجاد می کنیم باید در سند مانیفست وجود اون اعلان بشه.در غیر این صورت سیستم اکتیوتی ایجاد شده  رو نمی شناسه و اکتویتی که توسط سیستم شناخته شده نباشد قابل اجرا نیست).
در ذیل محتویات سند Manifest را بعد از ایجاد اکتیوتی جدید می بینید :

با ایجاد اکتیوتی جدید (SecondActivity.java) خط  ۱۸ به طور خودکار در سند Manifest  برای ما ایجاد میشه( اعلان خودکار  وجود اکتیوتی در سند مانیفست  ).
در صورتی که اکتیوتی خود را به روش مثل ساختن فایل اکتیویتی بصورت دستی ایجاد کنید اعلان وجود اکتیویتی شما در سند Manifest الزامی هست.
یرای مثال فرض کنید من اکتیوتی جدیدی با نام (ThirdActivity) به روش دستی ایجاد میکنم .اگر این اکتیویتی در سندمانیفست اعلان نشده بود باید حتما به سند Manifest برم و مطابق زیر اکتیوتی خودم رو در این سند تعریف کنم.

نکات مربوط به سند مانیفست
– خصوصیات مربوط به اکتیویتی( مثلاٌ android:name ) را باید در تگ آغازین <activity> قرار دهیم.
-دو تگ باز و بسته <activity></activity>باید بین دو تگ باز و بسته<application></application> قرار بگیرند.
– اسم اکتیوتی مون رو در مقابل خاصیت android:name  و بعد از یک نقطه (.) قرار می دهیم.
– هر اکتیویتی معمولا فقط  برای انجام دادن یک کار خاص ایجاد می شه به طور مثال یک اکتیوتی لیست نوشیدنی ها رو به کاربر نمایش میده و اکتیوتی دیگه سفارش کاربر رو دریافت میکنه و … .


در صورت داشتن هرگونه سوال یا پیشنهاد می توانید از طریق بخش نظرات با ما در تماس باشید .