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

نام تاپیک: بررسی اطلاعات یک اکتیویتی در اکتیویتی دیگر

  1. #1

    Question بررسی اطلاعات یک اکتیویتی در اکتیویتی دیگر

    سلام
    خسته نباشید
    ما در این کد اطلاعات یک اکتیویتی رو در یک اکتیویتی دیگر انتقال دادیم
    در این کد هم Activity.findViewById نوشته شده و یه بار دیگر linearlayout را پیدا کرده و نوشته شده linearlayout.findViewById
    آیا نیازه یه بار دیگه linearlayout را پیدا کنیم؟ مگر activity کافی نیست؟
    کد HTML:
    package com.google.myapplication;
    import android.app.Activity;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    
    /**
     * Created by user on 03/02/2019.
     */
    
    public class FormInfo {
        private Activity activity;
        private LinearLayout linearLayout;
        private EditText txtName;
        private EditText txtPhone;
        private EditText txtEmail;
        private CheckBox chk;
        private Button button;
    
        public FormInfo(Activity activity, int linearLayoutId)
        {
            this.activity=activity;
            linearLayout=(LinearLayout)activity.findViewById(linearLayoutId);
            init();
        }
    
        private void init()
        {
            txtName=(EditText)linearLayout.findViewById(R.id.editText2);
            txtEmail=(EditText)linearLayout.findViewById(R.id.editText3);
            txtPhone=(EditText)linearLayout.findViewById(R.id.editText4);
            chk=(CheckBox)linearLayout.findViewById(R.id.checkBox);
            button=(Button)linearLayout.findViewById(R.id.button2);
        }
    }

  2. #2

    نقل قول: بررسی اطلاعات یک اکتیویتی در اکتیویتی دیگر

    نقل قول نوشته شده توسط kamran_14 مشاهده تاپیک
    سلام
    خسته نباشید
    ما در این کد اطلاعات یک اکتیویتی رو در یک اکتیویتی دیگر انتقال دادیم
    در این کد هم Activity.findViewById نوشته شده و یه بار دیگر linearlayout را پیدا کرده و نوشته شده linearlayout.findViewById
    آیا نیازه یه بار دیگه linearlayout را پیدا کنیم؟ مگر activity کافی نیست؟
    کد HTML:
    package com.google.myapplication;
    import android.app.Activity;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    
    /**
     * Created by user on 03/02/2019.
     */
    
    public class FormInfo {
        private Activity activity;
        private LinearLayout linearLayout;
        private EditText txtName;
        private EditText txtPhone;
        private EditText txtEmail;
        private CheckBox chk;
        private Button button;
    
        public FormInfo(Activity activity, int linearLayoutId)
        {
            this.activity=activity;
            linearLayout=(LinearLayout)activity.findViewById(linearLayoutId);
            init();
        }
    
        private void init()
        {
            txtName=(EditText)linearLayout.findViewById(R.id.editText2);
            txtEmail=(EditText)linearLayout.findViewById(R.id.editText3);
            txtPhone=(EditText)linearLayout.findViewById(R.id.editText4);
            chk=(CheckBox)linearLayout.findViewById(R.id.checkBox);
            button=(Button)linearLayout.findViewById(R.id.button2);
        }
    }
    الان مشکل چی دوست عزیز! به این اشاره نکردید که!
    منظورتون از این سوال چی ؟
    آیا نیازه یه بار دیگه linearlayout را پیدا کنیم؟ مگر activity کافی نیست؟
    الان شما که در سازنده یک آبجکت دیگه از linearlyaout دوباره ساختید!
    به نظرم اینطوری خیلی بهتره...

    package com.google.myapplication;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.LinearLayout;

    /**
    * Created by user on 03/02/2019.
    */

    public class FormInfo {

    private LinearLayout linearLayout;
    private EditText txtName;
    private EditText txtPhone;
    private EditText txtEmail;
    private CheckBox chk;
    private Button button;

    public FormInfo(LinearLayout lLayout)
    {
    this.linearLayout=lLayout;
    init();
    }

    private void init()
    {
    txtName=(EditText)linearLayout.findViewById(R.id.e ditText2);
    txtEmail=(EditText)linearLayout.findViewById(R.id. editText3);
    txtPhone=(EditText)linearLayout.findViewById(R.id. editText4);
    chk=(CheckBox)linearLayout.findViewById(R.id.check Box);
    button=(Button)linearLayout.findViewById(R.id.butt on2);
    }
    }

    هم سبکتره و هم وابستگی ها را کمینه کردیم!
    والبته این روش که خیلی کم هزینه تر هست و هم شی FLY Weight استفاده شده وهم وابستگی ها کاهش پیدا کرده...

    package com.google.myapplication;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.LinearLayout;

    /**
    * Created by user on 03/02/2019.
    */

    public class FormInfo {

    private
    List<View> list_View ;
    public FormInfo(list<View> lView){
    list_View = lView;
    }

    private void show(){
    txtName = list_View.get(0);
    txtName = list_View.get(1);
    txtEmail= list_View.get(2);
    txtPhone= list_View.get(3);
    chk = list_View.get(4);
    button = list_View.get(5);
    }
    }

    public class Activity {

    private void setFormInfo(){
    LinearLayout linearLayout=(LinearLayout)activity.findViewById(l inearLayoutId);
    List<View> list_View = ArrayList<View>();
    list_View.add((EditText)linearLayout.findViewById( R.id.editText2))
    list_View.add((EditText)linearLayout.findViewById( R.id.editText3))
    list_View.add((EditText)linearLayout.findViewById( R.id.editText4))
    list_View.add((CheckBox)linearLayout.findViewById( R.id.checkBox))
    list_View.add((Button)linearLayout.findViewById(R. id.button2)))
    FormInfo form = new FormInfo(list_View);
    form.show();
    }
    }
    آخرین ویرایش به وسیله farhad_shiri_ex : دوشنبه 15 بهمن 1397 در 08:21 صبح دلیل: اصلاح

  3. #3

    نقل قول: بررسی اطلاعات یک اکتیویتی در اکتیویتی دیگر

    ممنون از جوابتون
    پس ما اگر activity.findViewById بنویسیم هم میشه فقط انگار محدوده جستجو بیشتره و با linearlayout.findViewById میشه محدوده را کوچکتر کرد

  4. #4

    نقل قول: بررسی اطلاعات یک اکتیویتی در اکتیویتی دیگر

    نقل قول نوشته شده توسط kamran_14 مشاهده تاپیک
    ممنون از جوابتون
    پس ما اگر activity.findViewById بنویسیم هم میشه فقط انگار محدوده جستجو بیشتره و با linearlayout.findViewById میشه محدوده را کوچکتر کرد
    ربطی به هم ندارن! البته اگر منظورتون را درست متوجه شده باشم!
    الان شی LinearLayout یک container layout هست که در لایه اصلی اکتیویتی تعریف تعریف شده است. بنابراین برای دسترسی به ویجت های داخل این Linear حتما باید از طریق این شی به ویجت ها دسترسی پیدا کنید در FindViewBYId اکتیویتی فقط به خود کانتینر Linear دسترسی دارید.
    و البته در مثالهای بالا توضیح دادم که کپی ها غیر ضروری از ویجت ها در اندروید خیلی زیاد بر روی performance تاثیر داره! پس تا جای ممکن باید از ایجاد کپی های اضافی جلوگیری کنید تا هم بازدهی بهتر باشد وهم از weak reference ها در جهت کمینه کردن وابستگی ها استفاده کنید!

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

  1. پاسخ: 6
    آخرین پست: چهارشنبه 28 خرداد 1399, 12:19 عصر
  2. پاسخ: 0
    آخرین پست: دوشنبه 27 آذر 1396, 10:53 صبح
  3. بستن چند اکتیویتی از یک اکتیویتی دیگر
    نوشته شده توسط sahar_mrd69 در بخش Android Studio
    پاسخ: 1
    آخرین پست: شنبه 18 مرداد 1393, 11:42 صبح
  4. نحوه تعریف چند اکتیویتی در یک اکتیویتی(یه همچین چیزی!)
    نوشته شده توسط Pam.goudarzi در بخش Android Studio
    پاسخ: 5
    آخرین پست: دوشنبه 12 خرداد 1393, 19:59 عصر
  5. پاسخ: 4
    آخرین پست: چهارشنبه 08 شهریور 1391, 11:33 صبح

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

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