داخل فرگمنت اول اطلاعات از سرور دریافت میشه و نمایش داده میشه ...
فرگمنت های بعدی استاتیک هستن ...
وقتی از طریق منو به باقیه فرگمنت ها سر میزنم و دوباره به فرگمنتی که از سرور اطلاعات میگیره بر میگردم چیزی نمایش داده نمیشه ...
ولی باقیه فرگمنت ها که استاتیک هستن به راحتی دوباره اطلاعاتشون رو نمایش میدن ...
چیکار باید انجام بدم که فرگمنت داینامیکم اطلاعات رو نمایش بده ؟
ممنون از پاسختون ادمین جان ... ولی با عرض پوزش چیزی دستگیرم نشد ...
میشه یه توضیح مختصر بدید ؟
تشکر !
منظورتون از اینکه چیزی دستگیرتون نشد اینه که توی ترجمه به مشکل برخوردین؟ چون خیلی واضح توضیح داده. اگه مشکلتون توی ترجمه است بفرمایید تا ترجمهاش رو بگذارم.
برای اینکه وضعیت یه فرگمنت رو بهشکل صحیح ذخیره کنین، باید این کارها رو انجام بدین:
1- توی فرگمنت، وضعیت شئ ایجادشده از اون رو با رونویسی متد onSaveInstanceState ذخیره کنین و توی onActivityCreated بازیابی کنین:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
if (savedInstanceState != null) {
//Restore the fragment's state here
}
}
...
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Save the fragment's state here
}
توضیح: برای ذخیرهکردن و بازیابی وضعیت میتونین از متغیرهای public static (مثلاً توی کلاس سراسری App یا خود اکتیویتی مربوط به فرگمنت) یا SharedPreferences کمک بگیرین.
2- و
قسمت مهم کار اینه که توی خود اکتیویتی هم باید شئ جاری فرگمنت رو توی onSaveInstanceState ذخیره و توی onCreate بازیابی کنین:
public void onCreate(Bundle savedInstanceState) {
...
if (savedInstanceState != null) {
//Restore the fragment's instance
mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");
...
}
...
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//Save the fragment's instance
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
}
بجای mContent باید اسم کلید دلخواه رو برای نگهداری شئ فرگمنتتون بگذارین (که البته نیازی به تغییرش هم نیست). از این پارامتر برای نگهداری فرگمنتهای مختلف با کلیدهای متفاوت استفاده میشه که میتونین توی کدتون باکمک ساختارهای کنترلی مثل if-else یا switch و... اونها رو مدیریت کنین.