با Bundle هم که اشنا هستید. یک نوع Bundle تعریف کردم اسمش را هم دلخواه دادم bdl.
حالا کدهای زیر را به متدتان اضافه کنید:
@Override
public void onCreate(Bundle bdl) {
super.onCreate(bdl);
setContentView(R.layout.second);
}
حالا کدهای زیر را به متدتان اضافه کنید:
@Override
public void onCreate(Bundle bdl) {
super.onCreate(bdl);
setContentView(R.layout.second);
}
خط اول که مشخص هست همان کاری که Bundle گفتم انجام میدهد را برایش تنظیم کردیم.
خط دومم اکتیویتی ما را به layout دوممان وصل کرده است. اون R هم گفتم فعلا درین حد بدانید که برای صدا زدن ابزارهایی که روی صفحه میگذاریم یا Layout ها از R استفاده میکنیم.
حالا بریم به اکتیویتی اصلی مان یعنی MyActivity و به آن بگیم روی دکمه که زده شد بیاد به SecondActivity.
پس یک دکمه روی Layout main بندازید. ایدیش را هم بگذارید btnSecondPage
خط دومم اکتیویتی ما را به layout دوممان وصل کرده است. اون R هم گفتم فعلا درین حد بدانید که برای صدا زدن ابزارهایی که روی صفحه میگذاریم یا Layout ها از R استفاده میکنیم.
حالا بریم به اکتیویتی اصلی مان یعنی MyActivity و به آن بگیم روی دکمه که زده شد بیاد به SecondActivity.
پس یک دکمه روی Layout main بندازید. ایدیش را هم بگذارید btnSecondPage
برید داخل اکتیویتی مربوط به این صفحه (MyActivity ) و داخل متد OnCreate اش یک onclickListener برای دکمتان بسازید. چون قبلا گفتم اینها را وارد جزییاتش نمیشوم. کد بصورت زیر هست:
که البته خود تعریف دکمه هم توضیحاتی دارد که در جلسات بعد خواهیم پرداخت.
حالا در onClick بنویسید:
Intent myintent = new Intent(MyActivity.this,SeconActivity.class);
حالا در onClick بنویسید:
Intent myintent = new Intent(MyActivity.this,SeconActivity.class);
این چی هست؟ اگر دقت کنید یک نمونه گرفتیم از موجودیتی به نام Intent که اسمشم دادم myintent
حالا در نمونه گرفتن از کلاس A که داشتیم یادتان باشد میگفتیم
A mya = new A()
و جلوی اسم A پرانتز داشتیم. این پرانتز میتواند با ورودی پر بشود که بسته به کلاستان دارد (بعدا مثال جاواییش را میزنم). اما اینجام دارید میبینید. Intent برای نمونه گرفتن ازش دوتا ورودی میخواهد. چیز سختیم نی داریم به آن میگوییم از کجا میخواهم بروم کجا!
حالا در نمونه گرفتن از کلاس A که داشتیم یادتان باشد میگفتیم
A mya = new A()
و جلوی اسم A پرانتز داشتیم. این پرانتز میتواند با ورودی پر بشود که بسته به کلاستان دارد (بعدا مثال جاواییش را میزنم). اما اینجام دارید میبینید. Intent برای نمونه گرفتن ازش دوتا ورودی میخواهد. چیز سختیم نی داریم به آن میگوییم از کجا میخواهم بروم کجا!
و حالا intent چی هست
Intent ها مثل پیام هایی هستند که با آنها از سیستم اندرویدتان تقاضای کاری را میکنید. در واقع Intent ها وقوع یک رویداد را به اندروید اعلام میکنند. مثلا بخواهیم آدرسی را در مرورگر اندروید باز کنیم یا الان اینجا میخواهیم به صفحه ای برویم.
برای رفتن از یک صفحه به صفحه دیگر intentرا بصورت بالا تعریف میکنیم. که به آن intent صریح هم میگویند.
خب intent را تعریف کردیم حالا باید start بکنیم آن را. کد پایین را زیره کد بالایی بنویسید:
startActivity(myintent);
Intent ها مثل پیام هایی هستند که با آنها از سیستم اندرویدتان تقاضای کاری را میکنید. در واقع Intent ها وقوع یک رویداد را به اندروید اعلام میکنند. مثلا بخواهیم آدرسی را در مرورگر اندروید باز کنیم یا الان اینجا میخواهیم به صفحه ای برویم.
برای رفتن از یک صفحه به صفحه دیگر intentرا بصورت بالا تعریف میکنیم. که به آن intent صریح هم میگویند.
خب intent را تعریف کردیم حالا باید start بکنیم آن را. کد پایین را زیره کد بالایی بنویسید:
startActivity(myintent);
خب برنامتان را همانطور که گفتم اجرا کنید. اما روی دکمه که میزنید برنامه خطای has stopped خواهد داد.
خب برنامتان را همانطور که گفتم اجرا کنید. اما روی دکمه که میزنید برنامه خطای has stopped خواهد داد.
دلیلش چیست؟ قبلا گفتم یک فایلی داریم به اسم manifest که از منوی سمت چپ پیداش میکنید. یک فایل xml هست. این فایل شناسنامه برنامه تان هست. هر کاری بکنید باید به آن بگید. مثلا اکتیویتی تعریف میکنید باید اینجا اعلام کنید. یا مثلا دیدید یک برنامه ای را نصب میکنید اولش اعلام میکند این برنامه به چه چیزایی دسترسی دارد؟ به اینها میگیم permission.
دلیلش چیست؟ قبلا گفتم یک فایلی داریم به اسم manifest که از منوی سمت چپ پیداش میکنید. یک فایل xml هست. این فایل شناسنامه برنامه تان هست. هر کاری بکنید باید به آن بگید. مثلا اکتیویتی تعریف میکنید باید اینجا اعلام کنید. یا مثلا دیدید یک برنامه ای را نصب میکنید اولش اعلام میکند این برنامه به چه چیزایی دسترسی دارد؟ به اینها میگیم permission.
اگه مثلا از وای فای استفاده میکند برنامتان باید اینجا اعلام کنید که برنامه من این قصد را دارد وگرنه برنامتان به خطا میخورد. حالا اینجا کافی هست که توی این فایل xml که یادم دادم کار باهاش رو سر layout ها اسم اکتیویتی که اضافه کردیم رو بگیم.
توجه کنید اکتیویتی اصلی خودش تعریف شده اینجا چون خودش دیفالت بود روی اپلیکیشن. برای همین برنامه بالا آمد. اما موقع ورود به اکتیویتی دوم ینی صفحه دوم خطا داد. الان تگ
application
رو پیدا کنید. شروع و پایانش را که بلدید پیدا کنید. داخلش ببینید یه تگ هست به نام
activity
که اگر نگاه کنید در ادامه اولش نوشته شده
name="MyActivity"
application
رو پیدا کنید. شروع و پایانش را که بلدید پیدا کنید. داخلش ببینید یه تگ هست به نام
activity
که اگر نگاه کنید در ادامه اولش نوشته شده
name="MyActivity"
ما چنین چیزی باید بسازیم اما کله این تگ لازم نیست عینا نوشته شود. این تگ چون تگ اصلی هست یک سری ویژگی ها باید بهش تنظیم میشده که شده. شما فقط آخر این تگ activity و البته همون داخل تگ application یک تگ activity دیگر تعریف کنید و بصورت زیر به آن مقدار بدید:
خب تمام. برنامه را اجرا کنید و لذت ببرید.
امیدوارم این آموزش برای شما مفید بوده باشه.
خسته نباشید
امیدوارم این آموزش برای شما مفید بوده باشه.
خسته نباشید
بسیار عالی بود و از خانم مقاری بابت آموزش خوبشون تشکر می کنم دوستان لطفا کانالو به دوستان خودتون معرفی کنید و کسانی که هنوز عضو نشدن عضو بشن 😊
@androiddevelop
@androiddevelop