آموزش ButterKnife در برنامه نویسی اندروید

سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش های برنامه نویسی اندروید به آموزش ButterKnife در برنامه نویسی اندروید می پردازیم شاید نامی آشنا برای شما نباشد از این کتاب خانه برای FindViewById راحتر استفاده می کنیم یعنی شما به راحتی می توانید آنها را Find کنید این کتاب خانه کارش Injection است view ها در اکتیویتی یا فرگمنت تزریق یا همان Inject می کند در ادامه با ما همراه باشید .
 
از مزیت های این کتاب خانه Cast نکردن است هرچند در Sdk 27 عمل Cast حذف شد.
 
ButterKnife چیست ؟
همانطور که در بالا گفتیم کار آن تزریق یا Inject تمامی View ها یا برخی از آنها در آکتیویتی یا فرگمنت است.
ابتدا باید این کتاب خان را به پروژه اضافه کنید برای این کار وارید فایل Build.gradle از نوع Module دهش سپس در بخش dependencies دو خط زیر را اضافه کنید.

پروژه را sync کنید قند شکن فراموش نشود.
سپس در بخش بالای فایل گریدل خط زیر را اضافه کنید.

باید دقیقا زیر خط بالا قرار دهید.
ساده ترین نمونه Find کردن آن به شکل زیر است (یک مثال ساده در ادامه بیشتر توضیح خواهیم داد)

آموزش Bind کردن در اکتیویتی

ابتدا در layout خود کدهای زیر را قرار دهید.

در بالا در Linear یکسری آیتم از جمله TextView , EditTex و Button با آیدی های خاصی قرار گرفته است.
حالا بخش اکتیویتی را مشاهده کنید.

در بالا ابتدا با استفاده از ButterKnife تمامی View ها را Bind یا find می کنیم سپس توسط متود bind آنها را initialize می کنیم مثلا برای اینکه یک کلیک برای دکمه تعریف کنیم ابتدا آن را bind می کنیم سپس کلیک را بعد از آن تعریف می کنیم .
 

آموزش Bind کردن در فرگمنت

 

در صورتی که در بالا this برای شما خطا داد باید از getactivtiy در بخش bind استفاده کنید.
یک نمونه مثال برای Bind کردن رنگ و Drawable به مثال زیر توجه کنید.

در بالا به راحتی یک عکس find شده است یا مثلا یک رنگ bind می شود و از آن استفاده می شود.
آموزش تعریف کلیک توسط ButterKnife

Bind کردن آیتم های موجود در یک آرایه استفاده شده است این کار توسط متود Action انجام می شود.

در بالا دو Action به گروهی از TextView ها اعمال می شود اولی متن از طریق یک array در TextView تنظیم یا ست می شود و دوم رنگ به گروهی از TextView ها اعمال می شود. view های ما در یک List قرار می گیرد و سپس با متود Action به صورت گروهی bind می شود.
حتی با استفاده از این کتاب خانه شما می توانید String های خود را نیز bind کنید مثل زیر

bind کردن یک dimen

bind کردن به عنوان یک Bitmap از یک drawable بدون حتی چند خط اضافی

 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.
 

مطالعه بیشتر