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

نام تاپیک: استفاده از کلید بک در اکشن بار !؟

  1. #1
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    Question استفاده از کلید بک در اکشن بار !؟

    سلام به همه :-)
    دوستان من از کلید بک اکشن بار استفاده کردم ، واسه برگشت به اکتیویتی پدر ؛ اما وقتی اکتیویتی پدر (اصلی) باز میشه دیگه اطلاعاتی که از اکتیویتی قبل (لاگین) گرفته بودم دیگه نمایش داده نمیشه !
    اطلاعات رو بصورت اینتنت از اکتیویتی قبل گرفتم :

    // get param from login activityprivate void getBundle() {
    Bundle extras = getIntent().getExtras();
    USER_ID = extras.getInt("EXTRA_ID");
    USER_NAME = extras.getString("EXTRA_NAME");
    USER_AGE = extras.getInt("EXTRA_AGE");
    USER_GENDER = extras.getString("EXTRA_GENDER");
    USER_DESC = extras.getString("EXTRA_DESC");
    img_bitmap = BitmapFactory.decodeByteArray(getIntent().getByteA rrayExtra("EXTRA_PIC"), 0, getIntent().getByteArrayExtra("EXTRA_PIC").length) ;
    }


    از onRestart و ... هم استفاده کردم ولی باز اطلاعات نمایش داده نمیشه !
    اما اگه با کلید بک گوشی برگردیم مشکلی بوجود نمیاد !!
    آخرین ویرایش به وسیله ghasem110deh : پنج شنبه 04 خرداد 1396 در 20:06 عصر

  2. #2

    نقل قول: استفاده از کلید بک در اکشن بار !؟

    نقل قول نوشته شده توسط ghasem110deh مشاهده تاپیک
    سلام به همه :-)
    دوستان من از کلید بک اکشن بار استفاده کردم ، واسه برگشت به اکتیویتی پدر ؛ اما وقتی اکتیویتی پدر (اصلی) باز میشه دیگه اطلاعاتی که از اکتیویتی قبل (لاگین) گرفته بودم دیگه نمایش داده نمیشه !
    اطلاعات رو بصورت اینتنت از اکتیویتی قبل گرفتم :

    // get param from login activityprivate void getBundle() {
    Bundle extras = getIntent().getExtras();
    USER_ID = extras.getInt("EXTRA_ID");
    USER_NAME = extras.getString("EXTRA_NAME");
    USER_AGE = extras.getInt("EXTRA_AGE");
    USER_GENDER = extras.getString("EXTRA_GENDER");
    USER_DESC = extras.getString("EXTRA_DESC");
    img_bitmap = BitmapFactory.decodeByteArray(getIntent().getByteA rrayExtra("EXTRA_PIC"), 0, getIntent().getByteArrayExtra("EXTRA_PIC").length) ;
    }


    از onRestart و ... هم استفاده کردم ولی باز اطلاعات نمایش داده نمیشه !
    اما اگه با کلید بک گوشی برگردیم مشکلی بوجود نمیاد !!

    برای برگشت به اکتیویتی اول از فلگ ACTIVITY_CLEAR_TOP استفاده کنید.

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
    switch (menuItem.getItemId()) {
    case android.R.id.home:
    Intent home = new Intent(this, Home.class);
    home.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(home);
    }
    return (super.onOptionsItemSelected(menuItem));

  3. #3
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: استفاده از کلید بک در اکشن بار !؟

    نقل قول نوشته شده توسط بهزاد اندیشمند مشاهده تاپیک
    برای برگشت به اکتیویتی اول از فلگ ACTIVITY_CLEAR_TOP استفاده کنید.

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
    switch (menuItem.getItemId()) {
    case android.R.id.home:
    Intent home = new Intent(this, Home.class);
    home.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(home);
    }
    return (super.onOptionsItemSelected(menuItem));
    تشکر بابت راهنمایی ولی فکر کنم دقیقا منظورم رو نرسوندم !

    ببینید ، من اطلاعات کاربر رو از اکتیویتی لاگین میفرستم به اکتیویتی اصلی، بعد از اکتیویتی اصلی یه اکتیویتی دیگه رو باز میکنم (که فرزند اکتیویتی اصلی هست و با دکمه بک توی اکشن بار برمیگرده به اکتیویتی اصلی) تا اینجا مشکلی نیست ! اما وقتی از اکتیویتی فرزند بر میگردم به اکتیویتی اصلی (که اکتیویتی پدر هست) دیگه اطلاعاتی که از لاگین گرفته بودم نمایش داده نمیشه (در واقع مقدار متغیرهاشون نال میشه)
    متود لود اطلاعات رو توی onRestart ، onResume ، onStart و ... هم گذاشتم ولی باز مشکل حل نشد !

    حالا اگه با دکمه بک خود گوشی یا ایمولیتور برگردم به اکتیویت اصلی اطلاعات سرجاش هست

  4. #4
    کاربر دائمی آواتار CsharpNevisi
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    تهران
    پست
    1,489

    نقل قول: استفاده از کلید بک در اکشن بار !؟

    یه راه خیلی ساده داره ..
    یک کلاس استاتیک درست کن و این متغییرها رو استاتیک بگیر .. USER_ID , USER_NAME , USER_AGE , USER_GENDER , USER_DESC .. تو فرم لاگین این متغییر ها رو مقداردهی کن و دیگه داده هارو با اکسترا و باندل پاس نده ... از کلاسی که استاتیکه و تو لاگین مقدار بهشون دادی داده بخون .. .

    دقیقا نمیدونم کلید بک اکشن بار چجوری کار میکنه ... چون همیشه اکشن بار دستی خودمو میسازم .. ولی احتمالا یه چیزی باعث میشه اکتیویتی پدرت از حافظا خارج بشه .. داخل متد OnCreate اکتیویتی پدرت یه بریک پوینت بزار یا یه لاگی بنویس .. بعد برو به اکتیوتی فرزند و دوباره برگرد به اکتیوتی پدر .. اگه متد OnCreate اجرا بشه مشخص میشه که از حافظه خارج شده بوده و شما دیگه نمیتونی با باندل کار کنی ..

    راهی که پیشنهاد کردم هم منطقیه هم کارتو خیلی ساده تر راه میندازه .

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

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