はじめに
毎日一つ、ライブラリを紹介するコーナーでも始めようかなと思って、これから頑張ってみようかなと思います。
最初に取り上げるのはButterKnifeからいきましょうか。
Butter Knifeとは
Jake Wharton先生の有名なライブラリです。
レイアウト上に定義されたウィジェットをアノテーションでインジェクトできるので、コーディングが大変楽になります。
このライブラリを利用しない場合、テキストビューのテキストを設定するような場合には以下の様なコードを毎回1書く必要がありました。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.textView); textView.setText("Hello, World!"); }
キャストが必要だし、ちょっと冗長1です。
こちらが、Butter Knifeで以下のように記述できます。1
@Bind(R.id.textView) public TextView mTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); mTextView.setText("Hello, World!"); }
最初の2行で@Bindアノテーションによって定義されたmTextViewが、onCreateメソッド内で呼びだされているButterKnife#bindメソッドでインジェクトされるおかげで、対象のファイル内ではドコのメソッド上でもウィジェットのオブジェクトに対して操作を行うことが可能となります。
ウィジェットの操作はカナリのコード量となるので、これだけでも相当楽ですね。
Butter Knifeの利用方法1
Butter Knifeの利用方法1は、Android Studioのapp/build.gradle1に対して以下の一文を追記するだけです。
dependencies { compile 'com.jakewharton:butterknife:7.0.1' }
※ 2016/04/23執筆時点のライブラリバージョンとなっています。最新版は 公式サイト で確認してください
その他の便利な使い方
Butter Knifeには、他にも便利な機能があります。
@Onclickアノテーション
ボタンのクリックイベントをonClickListenerインタフェース抜きで実現できます。
ライブラリなしの場合は以下のようになります。
Button button = (TextView) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /* クリックされた時の処理を記述 */ } }
Butter Knifeを利用すると、以下のように記述できます。1
@OnClick(R.id.button) public void onClickEvent(View view) { /* クリックされた時の処理を記述 */ }
大変スッキリ。Buttonでしたら、レイアウト内にandroid:onclick=”メソッド名”と書くことでイベントを設定できます[が、それも不要なので楽ちんです。
注意点としては、クリックイベントを受け取るために定義するメソッドは、名前は自由ですが、引数にViewを受け取り、戻り値がvoidというところだけ合わせておく必要があります。2
// 穴があったら入りたい。。。
それではよいAndroidライフを!
「Butter Knifeの使いかた」への1件のフィードバック