جلسه ۴ کار با actiivityها ی مختلف Acivity LifeCycle
با ساختن یه activity جدید سه تا چیز اضافه میشه
یه فایل جاوا
یه layout xml
یه توضیح تو manifest
تو منیسفت جلو اسم همه activityها یه نقطه گذاشته معنیش اینه که تو پکیج فعلی بعد تو این اکتیویتی
اگه تو یه پکیج دیگه باشه باید قبل نقطه آدرسای پکیجه رو بنویسی
package="ir.ben.hassan">
<activity android:name=".two"></activity>
<activity android:name="ir.ben.hassan.two"></activity>
حالا وقتی می خوای یه activity دیگه یا یه اپ دیگه فعال شه میری تو دکمه ت می نویسی:
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Intent intent=new Intent(MainActivity.this,two.class);
startActivity(intent);
// button.setText("Yahoooo");
return true;
}
});
اولی مبدا، دومی مقصد.
موارد استفاده intent:
رفتن به یه activity دیگه، تماس صوتی، بازکردن یه صفحه وبسایت، بازکردن تنظیمات و...
تا حالا داشتیم با متد OnCreate کار می کردیم:
@Override protected void onCreate(Bundle savedInstanceState) {
یه activity متدهای دیگه ای هم داره. بعد از تموم شدن OnCreate اگه بریم بنویسیم On خودش کلیاشو میاره
OnResume
OnStart
OnStop
OnDestroy
OnRestart
اینا رو تو activity دوم که می نوشتم خودش نمیاورد دستی کپی کردم و برا این که ارور نده باید @Overrideشو پاک کنی
بعدا فهمیدم: دلیل این که خودش نمیاورد on با اوی کوچیکه :|
#باگگگگگ :
{یه چیز عجیبم که برا من اتفاق افتاد گفتم توی pause نوشته ی توی mainActivity رو تغییر بده وقتی بر می گشتم می دیدم این نوشته تغییر کرده ولی هنوز دکمه هه مثل قبل داره رنگو عوض می کنه. دکمه هه که تو OnCreate بوده. ولی خب تو OnCreate که متنه هم تاریخ بود این همون متن OnPause مونده که :|
بالاخره داره OnCreate کار می کنه یا نه؟!}
- طریقه خوش آمد گویی:
میری تو OnCreate زیر
setContentView(R.layout.activity_main);
می زنی Toast و دو تا گزینه میاره توست خالیه رو می زنی:
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
این this چیزی از جنس context هست
این جا همون main activity هست