لمن لا يعرف عن مكتبة Butter knife هي ببساطة مكتبة للوصول السريع لمكونات الواجهة الخاصة بالتطبيق (مكونات XML files) مثل ال TEXTVIEW و IMAGEVIE وغيرها ....
فى الوضع العادى اذا اردت الوصول لاى مكون من المكونات فى الشاشة فأنت تقوم باستخدام findViewById ثم تقوم بعمل cast ويجب عليك فعل ذلك مع كل مكون موجود لديك تريد التعامل معه حينما يكون لديك عدد قليل من المكونات تكون الامور سهله لكن عندما يكون لديك عدد كبير من المكونات مثلا 8 TextView و 6 EditText و زر و صورة أو اكثر تجد انك تقوم بكتابة findViewById كثيرا تعطيها الـ ID تم تقوم بعمل Cast تنتقل للعنصر الثانى تقوم بتعريفه findViewById وتعطيه الـ ID ثم تقوم بعمل Cast تنتقل للمكون الثالث وهكذا ولا بد أنك تشعر بالملل من كثرة كتابة findViewById وعمل الـ Cast ولحسن الحظ لست وحدك من يشعر بالملل من فعل ذلك فلقد سبقك المبرمجون بالشعور بالملل لكن لم يكتفوا بذلك فقط بل أوجدوا حلولا حيث قام جاك وراتون بعمل مكتبة للتسهيل على المبرمجين اطلق عليها اسم سكين الزبد (Butter Knife) والتى سنقوم بشرحها الان فى هذه التدوينة .
هذا هو الحال مع findViewById شي ممل في الكتابة
وهذا هو الحال بمجرد تنزيل المكتبة والاضافة
إضافة المكتبة للمشروع
تقوم باضافة هذان السطران من الكود الي ملف ال Gradle:module
compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
وتقوم بعمل Sync
استخدام المكتبة مع الـ Activity
اولا ساقوم باضافة الاضافة ButterKnifeZelezny والتي ستستدعي كل المكوناتبضغطة سحريةاذهب الي اندرويد استيديو→file → settings → Plugin->ButterKnifeZeleznyبعد ذلك اذهب الي Activity اللي هتتعامل معها نفترض ان اسمهاMainActivity وملف ال XML لها activity_mainاذهب واضغط right click علي activity_main الموجودة هناsetContentView(R.layout.activity_main);
هتظهر Generate اضغط عليها ثم اختار Generate ButterKnife Injectionsوهستجد كل المكونات بين يديك حتي لو كانت الف مكون .ويوجد demonstration لكل
nice article
ReplyDeletethanks :)
Delete