خیلی از دوستان تازه وارد این مشکل رو دارن ک بعد رفتن از اکتیویتی به اکتیویتی با مشکل فورس کلوز روبه رو میشن!
من چندتا از دلایل شایع رو ک به ذهنم میرسه رو توضیح میدم اگر از دوستان کسی دلایل دیگه ( و حلش) مواجه شده بنویسه تا تاپیک آپدیت بشه!
+اصلی ترین و شایع ترین دلیل که اکثرا باهاش مواجه میشن فراموش کردن معرفی اکتیویتیه جدید درmanifest !
- به این صورت:
+یه مشکل دیگه در همین مورد اینه که نقطه(.) قبل از اسم اکتیویتی فراموش میشه(در حالت دیگه میشه اسم پکیج رو بجای نقطه نوشت مثلا:ir.android.ActivityNew
+از مشکلات دیگه این هستش ک خود اکتیویتی جدید مشکل داره و طبیعتا فورس کلوز میده و مشکل از انتقال نیست!
-برای متوجه شدن میتونین از دیباگ کردن مشکل رو فهمیده و رفع کنید.برای ساده شدن کار ابتدا اکتیویتی جدید رو ساده کنید مثلا به یک پیام toast اکتفا کنید تا ببینید مشکل از خوداکتیویتیه یا نه!
+در همین مورد،خیلی وقت ها مشکل از layout میباشد و ممکنه عناصر درست تعریف نشده باشن با مشکلی در چیدمان باشد.بهتر است خوت لی اوت رو جداگانه بررسی کنید.
+از مشکلات دیگه میتوان به تعریف کد باتن در اکتیویتی اول برای انتقال به اکتیویتی دوم اشاره کرد
+یکی از دلایل عمده هم وقتی باعث مشکل میشه که برنامه نویس در اکتیویتی اول مقادیری رو برای اکتیویتی دوم با intent ارسال میکنه اما در اکتیویتی دوم بنا به دلایلی درست دریافت نمیشود و چون از دستور شرطی برای حالتی که مقادیر درست دریافت نشوند(در اکتیویتی دوم)استفاده نشده باعث فورس کلوز میشود
- دریافت مقادیر در اکتیویتی دوم به این صورت
من چندتا از دلایل شایع رو ک به ذهنم میرسه رو توضیح میدم اگر از دوستان کسی دلایل دیگه ( و حلش) مواجه شده بنویسه تا تاپیک آپدیت بشه!
+اصلی ترین و شایع ترین دلیل که اکثرا باهاش مواجه میشن فراموش کردن معرفی اکتیویتیه جدید درmanifest !
- به این صورت:
کد پیاچپی:
اینطوری مینویسیم:
بعد از تگ </activity>
و قبل از تگ</application>
<activity android:name=".ActivityNew"></activity>
+از مشکلات دیگه این هستش ک خود اکتیویتی جدید مشکل داره و طبیعتا فورس کلوز میده و مشکل از انتقال نیست!
-برای متوجه شدن میتونین از دیباگ کردن مشکل رو فهمیده و رفع کنید.برای ساده شدن کار ابتدا اکتیویتی جدید رو ساده کنید مثلا به یک پیام toast اکتفا کنید تا ببینید مشکل از خوداکتیویتیه یا نه!
+در همین مورد،خیلی وقت ها مشکل از layout میباشد و ممکنه عناصر درست تعریف نشده باشن با مشکلی در چیدمان باشد.بهتر است خوت لی اوت رو جداگانه بررسی کنید.
+از مشکلات دیگه میتوان به تعریف کد باتن در اکتیویتی اول برای انتقال به اکتیویتی دوم اشاره کرد
کد پیاچپی:
Button bt = (Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,ActivityNew.class));
}
});
+یکی از دلایل عمده هم وقتی باعث مشکل میشه که برنامه نویس در اکتیویتی اول مقادیری رو برای اکتیویتی دوم با intent ارسال میکنه اما در اکتیویتی دوم بنا به دلایلی درست دریافت نمیشود و چون از دستور شرطی برای حالتی که مقادیر درست دریافت نشوند(در اکتیویتی دوم)استفاده نشده باعث فورس کلوز میشود
- دریافت مقادیر در اکتیویتی دوم به این صورت
کد پیاچپی:
Bundle extras = getIntent().getExtras();
if (extras != null) {
if(extras.containsKey("name")){
String myVariable_2 = extras.getString("name");
}
}