ButterKnife یک کتابخانه کوچک، ساده و سبک است و شما براحتی میتوانید از آن استفاده کنید. قبل از هر چیزی بیاید با یک مثال شروع کنیم.
کدامیک از کدهای زیر را میپسندید:
protected TextView mWelcomeLabel; protected EditText mUsernameField; protected EditText mPasswordField; protected Button mSubmitButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWelcomeLabel = (TextView) findViewById(R.id.welcomeLabel); mUsernameField = (EditText) findViewById(R.id.usernameField); mPasswordField = (EditText) findViewById(R.id.passwordField); mSubmitButton = (Button) findViewById(R.id.submitButton); }
یا
@InjectView(R.id.welcomeLabel) protected TextView mWelcomeLabel; @InjectView(R.id.usernameField) protected EditText mUsernameField; @InjectView(R.id.passwordField) protected EditText mPasswordField; @InjectView(R.id.submitButton) protected Button mSubmitButton; @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); ButterKnife.inject(this); }
مسلما کد دوم مختصر تر و قابل فهم تر است، شما اینطور فکر نمیکنید؟ کد دوم از کتابخانه ButterKnife استفاده میکند.
این کتابخانه ویژگیهای دیگری هم دارد تا بتوانید برای شیها OnClickListeners و دیگر listenerهای رایج را تعریف کنید، که از روش معمول تعریف آنها سادهتر است.
برای استفاده از این کتابخانه کافیست تا خط کد زیر را در build.gradle در قسمت dependencies اضافه کنید:
compile 'com.jakewharton:butterknife:5.1.2'
صفحه رسمی این کتابخانه را هم حتما ببینید: ButterKnife
امیدوارم که با معرفی این کتابخانه توانسته باشم در اجرای آسانتر پروژهها کمکی کرده باشم.
من ازش استفاده کردم… باحال ه!
هی بچه ها این جا خیلی خوبه
عموما مطالبتون به دردم می خوره
بسیار عالی
باعث میشه کد مرتب تر و خواناتر باشه
ان شالله در پروژه ی بعدی ازش استفاده کنم
با تشکر از صمصام عزیز.
خیلی کتابخانه خوبیه، من باید حتما واسه پروژه های اندرویدم ازش استفاده کنم.
سلام
من ازش توی یه پروژه tab-based استفاده کردم ولی به مشکل خوردم مجبور شدم پاکش کنم!
سلام بچه های وقتی به بخش best practice for performance مستندات خود آندروید میرید به صراحت میگه که از کتابخانه های dependency injection استفاده نکنید .
http://developer.android.com/training/articles/memory.html#DependencyInjection
به نظرم کد اول خواناتر، استانداردتر و قابل فهم تره!
تفاوت injetc و bind توی این کتابخانه چیه دقیقا ؟
از به اشـتـراکــ گــذاری صـحـیـح اطــلاعـاتـتان،
بـسـیـار سپـاسـگـزارم.