Merhaba arkadaşlar bu gün ki makalemde ButterKnife kütüphanesinin kullanımından bahsedeceğim.
Önceki makalelere buradan ulaşabilirsiniz.
Öncelikle bu kütüphanenin kullanım amacından bahsetmek istiyorum. Bildiğiniz gibi xml dosyasında yazdığımız bütün komponentleri java dosyasında kodlaya bilmemiz için öncelikle onların nesnesini oluşturup, oluşturduğumuz nesneleri findviewByid methodu ile xml de tanımladığımız komponentlerle birleştiriyorduk. Veya butonların onclink özelliğini gidip bizim manuel olarak java dosyasına tanımlamamız gerekiyordu. Bu durum küçük bazlı projelerde çok sorun olmasa da büyük ölçekli projelerde çok sıkıntıya yol açmaktadır. Bu durum zaman ve efor kaybına sebep olmaktadır. Bu manuelliği ortadan kaldırmak için bu kütüphane oluşturulmuştur. Kütüphaneyi projenin gradle dosyasına ekledikten sonra tek bir tıkla bütün komponentlerin tanımlanması ve onclink özelliğinin set edilmesini sağlamış oluruz.
Bu kütüphaneyi ilk kullanmadan önce android studio da tek seferlik plugin ayarlarını set etmemiz gerekmektedir.
Preferences → Plugins → Browse repositories → ButterKnife Zelezny
Yukarıdaki adımları yaparak ButterKnife Zelezny plugin’ini indirmiş oluyoruz. Bundan sonra bütün projelerimizde kolaylıkla kullanama bileceğiz.
compile 'com.jakewharton:butterknife:7.0.1'
Yukarıdaki kütüphaneyi gradle dosyasına eklemiz gerekmektedir.
import org.joda.time.Duration; import org.joda.time.LocalDate; import java.util.ArrayList; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by on 16.02.2018. */ public class FinanceGoalDetail extends BaseActivity { @BindView(R.id.relative3) RelativeLayout relative3; @BindView(R.id.card_view) CardView cardView; @BindView(R.id.totalSaving) TextView totalSaving; @BindView(R.id.totalGoal) TextView totalGoal; @BindView(R.id.barchart) BarChart barchart; String userNAme; SharedPreferences pref; SharedPreferences.Editor editor; Button btnOpenDialog; TextView textInfo; String goalId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.finance_goal_detail); ButterKnife.bind(this); }
Yukarıdaki örnek kodu inceleyecek olursak, öncelikle ButterKnife kütüphanelerini import ediyoruz. Sonra ButterKnife.bind(this); ile de kütüphaneyi kullanılır hale getiriyoruz. Artık Oncreate methodunun içinde sağ tıklayıp Generate→Generate ButterKnife Injections seçeneklerini tıklayarak uygulamamızda kullandığımız bütün komponentlerin tanımlamalarını yapmış oluruz.
Bir makalenin daha sonuna geldik, esenle kalın..