نمایش نتایج 1 تا 14 از 14

نام تاپیک: ذخیره Fragment در Navigation Drawer

  1. #1
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    ذخیره Fragment در Navigation Drawer

    سلام دوستان
    من یه مشکلی دارم که واقعا اگه راه حلی واسش دارین حتما بگین چون واقعا گیر کردم
    نویگیشن دراور برنامه من ۵تا آیتم داره که فرگمنت هستن . در واقع با کلیک روی هر آیتم فرگمنت مورد نظر Replace میشه با قبلی
    مشکل اینجاست UI فرگمنت ها کمی سنگینه و باید ۱بار لود بشن و ذخیره بشن و دفعات بعدی اون فرگمنت ذخیره شده رو نشون بده .
    متدی که برای replace کردن نوشتیم به صورت زیر هست. کدهای زیر یه اشکالی که داره اینه که هر دفه که کلیک میشه یه new میزنه و این باعث میشه دوباره فرگمنت از دوباره بارگیری بشه . من میخوام این فرگمنت ها رو یه جا ذخیره کنم. چجوریشو نمیدونم


    @Override
    public void onNavigationDrawerItemSelected(int position) {
    Fragment fragment = null;
    switch (position) {
    case 0:
    fragment = new InfoFragment();
    break;
    case 1:
    fragment = new ParentOtoFragment();
    break;
    case 2:
    fragment = new ParentProFragment();
    break;
    case 3:
    fragment = new SupportFragment();
    break;
    case 4:
    fragment = new AboutFragment();
    break;
    }
    if (fragment != null){
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.container,fragmen t).commit();
    }
    }

  2. #2
    کاربر دائمی آواتار saeidpsl
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مریخ
    سن
    32
    پست
    791

    نقل قول: ذخیره Fragment در Navigation Drawer

    فکر کنم این بتونه کمکت کنه

  3. #3

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط slr560 مشاهده تاپیک
    سلام دوستان
    من یه مشکلی دارم که واقعا اگه راه حلی واسش دارین حتما بگین چون واقعا گیر کردم
    نویگیشن دراور برنامه من ۵تا آیتم داره که فرگمنت هستن . در واقع با کلیک روی هر آیتم فرگمنت مورد نظر Replace میشه با قبلی
    مشکل اینجاست UI فرگمنت ها کمی سنگینه و باید ۱بار لود بشن و ذخیره بشن و دفعات بعدی اون فرگمنت ذخیره شده رو نشون بده .
    متدی که برای replace کردن نوشتیم به صورت زیر هست. کدهای زیر یه اشکالی که داره اینه که هر دفه که کلیک میشه یه new میزنه و این باعث میشه دوباره فرگمنت از دوباره بارگیری بشه . من میخوام این فرگمنت ها رو یه جا ذخیره کنم. چجوریشو نمیدونم
    سلام ، اینجوری که شما میگیی مصرف حافظه بیشتر میشه، ولی الان فقط یک عدد Fragment مقیم تو حافظه دارین.

  4. #4
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط #root# مشاهده تاپیک
    سلام ، اینجوری که شما میگیی مصرف حافظه بیشتر میشه، ولی الان فقط یک عدد Fragment مقیم تو حافظه دارین.
    مشکل میدونی کجاست؟ مشکل اینه وقتی روی آیتم نویگیشن کلیک میشه یکم مکس میکنه و گیر میکنه تا UI ساخته بشه . این زیاد جالب نیس
    من میخوام فقط حداقل فقط دفه ی اول گیر کنه . دفعات بعد فرگمنت ذخیره شده رو نمایش بده. حرف شما درسته . ولی خب مجبورم دیگه

  5. #5
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط saeidpsl مشاهده تاپیک
    فکر کنم این بتونه کمکت کنه
    مرسی دوسا عزیز
    فقط چنتا سوال
    این onSaveInstanceState چه موقع فراخوانی میشه؟؟ باید خودم دستی فراخوانیش کنم؟

  6. #6

    نقل قول: ذخیره Fragment در Navigation Drawer

    باید دستی خودت فراخونیش بکنی و اور رایدش بکنی

  7. #7
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط tux-world مشاهده تاپیک
    باید دستی خودت فراخونیش بکنی و اور رایدش بکنی
    اونو که میدونم عزیز. میگم چه موقعی فراخوانی میشه؟؟؟ باید خودم دستی مثلا بزارمش توی onCreate یا onCreateView یا اینکه فقط کافیه اورراید بشه و بقیه کارارو خوددش میکنه؟؟

  8. #8
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    این تابع saveinstancestate یه ورودی فرگمنت داره. اخریش. اینو هر جوری مقدار میدم ارور میگیره

  9. #9

    نقل قول: ذخیره Fragment در Navigation Drawer

    خوب ببین داخل onCreate و اینا که نمیتونی اور رایدش کنی عزیزم. یه مثال میزنم برات. این مثال وضعیت رو زمان چرخودن گوشی نگهداری میکنه:

    public class MainActivity extends Activity 
    {

    protected void onSaveInstanceState(Bundle outState)
    {
    super.onSaveInstanceState(outState);
    System.out.println("TAG, onSavedInstanceState");

    final TextView text = (TextView)findViewById(R.id.textView1);
    CharSequence userText = text.getText();
    outState.putCharSequence("savedText", userText);
    }
    protected void onRestoreInstanceState(Bundle savedState)
    {
    System.out.println("TAG, onRestoreInstanceState");
    final TextView text = (TextView)findViewById(R.id.textView1);
    CharSequence userText = savedState.getCharSequence("savedText");
    text.setText(userText);
    }
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final String name = "5";

    final TextView show = (TextView)findViewById(R.id.textView1);
    Button btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener()
    {

    public void onClick(View v)
    {
    // TODO Auto-generated method stub

    show.setText(name);

    }
    });
    }
    }

  10. #10
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط tux-world مشاهده تاپیک
    خوب ببین داخل onCreate و اینا که نمیتونی اور رایدش کنی عزیزم. یه مثال میزنم برات. این مثال وضعیت رو زمان چرخودن گوشی نگهداری میکنه:

    public class MainActivity extends Activity 
    {

    protected void onSaveInstanceState(Bundle outState)
    {
    super.onSaveInstanceState(outState);
    System.out.println("TAG, onSavedInstanceState");

    final TextView text = (TextView)findViewById(R.id.textView1);
    CharSequence userText = text.getText();
    outState.putCharSequence("savedText", userText);
    }
    protected void onRestoreInstanceState(Bundle savedState)
    {
    System.out.println("TAG, onRestoreInstanceState");
    final TextView text = (TextView)findViewById(R.id.textView1);
    CharSequence userText = savedState.getCharSequence("savedText");
    text.setText(userText);
    }
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final String name = "5";

    final TextView show = (TextView)findViewById(R.id.textView1);
    Button btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener()
    {

    public void onClick(View v)
    {
    // TODO Auto-generated method stub

    show.setText(name);

    }
    });
    }
    }
    بله عزیز میدونم نیمشه اور راید کرد. نگفتمم اور راید کردم . گفتم فراخوانی
    مشکلی توی ‌ذخیره مقدار های String و int ندارم . فقط نمیتونم کل فرگمنت رو ذخیره کنم
    توی متد putFragment یه ورودی داره که باید فرگمنتی که قصد ذخیره کردنشو داری بدی. اینو هر جوری مقدار میدم قبول نمیکنه

  11. #11
    کاربر دائمی آواتار saeidpsl
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مریخ
    سن
    32
    پست
    791

    نقل قول: ذخیره Fragment در Navigation Drawer

    این سورس میتونه کمکت کنه

  12. #12
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    نقل قول نوشته شده توسط saeidpsl مشاهده تاپیک
    این سورس میتونه کمکت کنه
    بازم نشد . تا یه جاییشو رفتم جلو ولی نحوه ی پیاده سازیش کلی با من فرق داره
    فکر کنم باید توی خوده کلاسای فرگمنت تک تک بیام با onSaveInstanceState فرگمنت رو ذخیره کنم و بعد توی یکی از متدهای onCretae یا onCreateView بازیابیش کنم. اصلا نمیدونم چجوری بنویسمش

  13. #13
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    دوستان ۷۰ ٪ اوکی شد
    فقط یه مشکل هست. چجور میتونم وقتی فرگمنت onPause یا onStop شد متد onSaveInstanceState رو فراخوانی کنم؟ چون فقط در صورت چرخش صفحه این متد فراخوانی میشه.

  14. #14
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: ذخیره Fragment در Navigation Drawer

    کسی نیست مرا یاری کند؟

تاپیک های مشابه

  1. راست به چپ کردن Navigation Drawer
    نوشته شده توسط ramin149 در بخش Android Studio
    پاسخ: 14
    آخرین پست: جمعه 20 شهریور 1394, 17:39 عصر
  2. آیکن در navigation drawer
    نوشته شده توسط hamedjj در بخش Android Studio
    پاسخ: 0
    آخرین پست: یک شنبه 17 فروردین 1393, 00:40 صبح
  3. پاسخ: 1
    آخرین پست: پنج شنبه 22 اسفند 1392, 21:14 عصر
  4. کار کردن Navigation Drawer فقط در یک Tab
    نوشته شده توسط ramin149 در بخش Android Studio
    پاسخ: 2
    آخرین پست: سه شنبه 20 اسفند 1392, 14:36 عصر
  5. ساخت جزئیات navigation drawer
    نوشته شده توسط hamedjj در بخش Android Studio
    پاسخ: 6
    آخرین پست: پنج شنبه 08 اسفند 1392, 22:07 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •