Android StudioでButterKnifeを使う

ButterKnifeはViewのインジェクションに特化したライブラリです。

Android Studioで利用する場合はとても簡単で、app/build.gradleのdependenciesに1行追加するだけです。

app/bulid.gradleに1行追加するだけ

    compile 'com.jakewharton:butterknife:6.1.0'

これだけで使えるようになります。

ButterKnifeを使うことでfindViewById()をコードからなくすことができるので、ActivityやFragmentのコードがすっきりします。

public class MainActivity extends ActionBarActivity {

    @InjectView(R.id.test)
    TextView mTextTest;
    @InjectView(R.id.hello)
    TextView mTextHello;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.inject(this);

        mTextTest.setText("ButterKnife Sample!!!");
        mTextHello.setText("Next text here!!");
    }
}

ButterKnifeサンプルの実行結果

@InjectView(ViewのID)で、TextViewなどを保持するクラスフィールドを指定してやります。

後はonCreate()内でButterKnife.inject(this)を実行すれば、findViewById()を使うことなく、Viewに対する操作ができるようになります。

扱うViewが多くなればなるほど、その効用が実感できるようになります。

ButterKnifeを使わない場合、以下のようになります。

public class MainActivity extends ActionBarActivity {

    TextView mTextTest;
    TextView mTextHello;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        (TextView) mTextTest = (TextView) findViewById(R.id.test);
        (TextView) mTextHello = (TextView) findViewById(R.id.hello);

        mTextTest.setText("ButterKnife Sample!!!");
        mTextHello.setText("Next text here!!");
    }
}

Android Studioだとbuild.gradleに1行追加するだけで使えるようになるので、とても便利ですね。

GitHub – ButterKnife

Amazonのほしいものリストを公開しています。仕事で欲しいもの、単なる趣味としてほしいもの、リフレッシュのために欲しいものなどを登録しています。 寄贈いただけると泣いて喜びます。大したお礼はできませんが、よりよい情報発信へのモチベーションに繋がりますので、ご検討いただければ幸いです。