PDA

View Full Version : روش بهینه ارجاع به ویجت های موجود در layout در کد جاوا



javanddev
چهارشنبه 14 مرداد 1394, 17:35 عصر
سلام دوستان
میخواستم ببینم اگر در یک اکتیویتی مثلا 10 تا دکمه داشته باشیم و بخوایم در کد جاوا به این ده تا دکمه رو با findViewById() پیدا کنیم و به فیلدها نسبت بدیم، مشکلی در سرعت برنامه پیش نمیاد؟ من در چند سایت انگلیسی خونده بودم که متد findViewById کار سنگینی انجام میده و خودم هم احساس می کنم که در برنامه ام وقتی همچین کدی دارم:

menuBtn1 = (ImageButton) findViewById(R.id.menuBtn1);
menuBtn2 = (ImageButton) findViewById(R.id.menuBtn2);
menuBtn3 = (ImageButton) findViewById(R.id.menuBtn3);
menuBtn4 = (ImageButton) findViewById(R.id.menuBtn4);
menuBtn5 = (ImageButton) findViewById(R.id.menuBtn5);
menuBtn6 = (ImageButton) findViewById(R.id.menuBtn6);
menuBtnAbout = (ImageButton) findViewById(R.id.menuBtnAbout);
menuBtnFavorites = (ImageButton) findViewById(R.id.menuBtnFavorites);
menuBtnSearch = (ImageButton) findViewById(R.id.menuBtnSearch);
menuBtnSettings = (ImageButton) findViewById(R.id.menuBtnSettings);

سرعت برنامه پایین میاد.
توی LogCat پیغام Skipped 311 frames! The application may be doing too much work on its main thread. رو نشون میده که 311 فریم خیلی زیاده!

میخواستم ببینم آیا روش بهتر و بهینه تری برای این کار هست؟

ssss67
یک شنبه 03 مرداد 1395, 12:50 عصر
من هم دچار همین مشکل هستم اساتید زاهنمایی کنید

hharddy
یک شنبه 03 مرداد 1395, 22:26 عصر
این روش و امتحان کنید
https://medium.com/google-developers/no-more-findviewbyid-457457644885#.af6sv0q72