Persian Software Engineers
داخل main میخواهم الان کلاسم را صدا بزنم. یادتان باشد یک مثال انسان زدم گفتم نمیتونم بگم انسان بیا. باید بگم فلانی که انسان هستی بیا. اینجا هم نمیشود الان کلاسم را بهش بگم متدت را اجرا کن . بلکه یه نمونه ازش میگیرم. میگم حالا فلانی که از نوع B هستی متدت را…
این جمله را بخوانید. قشنگ نمونه گرفتن را بیان میکند. و اسم نمونه هم myb هست.
وبرای اینکه نتیجه را ببینید از منوی بالا Run را بزنید و در آن دوباره گزینه Run را انتخاب کنید:
خب دیدید که تابع درست Override یا بازنویسی شده و خروجی را هم میبینید
حالا برید داخل کلاس A و یک متد دیگر بصورت زیر بسازید:
حالا برید داخل کلاس A و یک متد دیگر بصورت زیر بسازید:
اندفعه میخواهم نشان بدهم اگر متد تابعی که از آن ارث میبریم را تغییر ندهیم بهش دسترسی داریم اما عینا همانطور که تعریف شده است اجرا میشود. پس داخل کلاس B جای
myb.printing ();
بنویسید:
myb.printing2();
و اجرا بگیرید. میبینید که متد از A دقیقا به ارث رسیده است
myb.printing ();
بنویسید:
myb.printing2();
و اجرا بگیرید. میبینید که متد از A دقیقا به ارث رسیده است
مفاهیمی که از جاوا لازم بود را دوره کردیم. حالا برگردیم به اندروید. سر متد Oncreate بودیم که این بحثها پیش آمد. این متد هم برای Activity هست اما مشخص هست که من باید تغییرش بدهم مثلا بگم که این کلاسی که برای آن OnCreate ساختی به کدام layout وصل هست. پس باید تغییرش بدم.
پس کد زیر را بنویسید:
پس کد زیر را بنویسید:
با 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.