آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چه جوری یه کد تر و تمیز بنویسم؟

alisherafat01  9 سال پیش  9 سال پیش
0 0

سلام دوستان

یه کد میخاستم بنویسم  دیدم با روشی که خودم بلدم کد ، تر و تمیز و بهینه در نمیاد ازتون میخام برا این مورد مدنظر من اگه چیزی به ذهنتون میرسه بهم بگید :)

میخام سی تا تکست ویو درست کنم (ده تا ردیف سه تایی مثل همین عکس) که مقادیرشون از Array.xml پر بشه دیدم اگه سی خط برا تعریف تکس ویو و سی خط هم برا SetText بنویسم که کار جالبی در نمیاد!

آموزش رفلکشنو دیدم و کد استاد به این شکل بود:

 public class ReflectionActivity extends Activity {

    public class Ui extends HelperUi {

        public TextView txtTest1;
        public Button   button1;
        public CheckBox chkTest3;


        public Ui(View view) {
            parseUi(view);

            txtTest1.setText("Hello");
            btnTest2.setText("It's OK");
            chkTest3.setChecked(false);
        }
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Ui ui = new Ui(getWindow().getDecorView());

    }
}

خب با این وضعیت دو تا سوال دارم:  1-الان که دوباره باید 30 تا تکس ویو تعریف کنم اینطور نیس؟

2- این جوری که نمیشه به اجزایی که در کلاس ui در بالا تعریف شده مثلا button1  در متدهایی مثل oncreate  و متد های پایین ترش که خودم قراره اضافه کنم دسترسی داشته باشم ! چه راه کاری هست برا این کار؟

با for هم اینجوری که نوشتم نمیشه ! (ابته نبایدم بشه) 

 String[] array = getResources().getStringArray(R.array.test);

for (int i=0;i<31;i++){
txt+i.setText(
array [i]); //اینجوری که نمیشه
}

 رفقا  به نظرتون باید چه جوری کد بنویسم ؟؟

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
b.fat  9 سال پیش
+1 0

کاری که من یک بار انجام دادم این بود. مزیت این کار نگهداری و عیب یابی ساده کد هست:

1- یک آرایه با (مثلا) 30 تا درایه  از نوع TextView تعریف کردم.

2- تک به تک درایه ها رو با findViewById به کنترل های خودم وصل کردم. (این قسمت برای شما 30 خط میشه)

3- آرایه ای با 30 درایه از متن ها تعریف کردم و داخلش کلمات دلخواهم را ریختم.

4- باقی کارها شامل نسبت دادن متن به کنترل، تعریف onClickListener، تغییر فونت و همه کار دیگر را در حلقه های for انجام دادم.

پاسخ به سوال 
Andronymous  9 سال پیش
+1 0

جواب سوال دومتون :
شما در OnCreate از کلاس Ui یک شی ساختین
کافیه از این به بعد برای استفاده از Field های مورد نیازتون فیلد هایی ک داخل کلاس Ui قرار دادین رو صدا بزنین (با استفاده از شی ای که ساختین)
مثلا توی هر متدی بنویسین :

 ui.txtTest1.setText("Hello");

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .