ButterKnife.bind

ButterKnifeは、アノテーションでViewのIDとオブジェクト処理を紐付けるライブラリ。

Butter Knife
ButterKnifeを使ってみたまとめ - Qiita

ButterKnife.bindで紐付く。

package com.bgstation0.butterknife.sample.bk_;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    // メンバフィールドの定義
    Context mContext = null;    // mContextをnullで初期化.

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Buttonにリスナーをセット.
        mContext = this;    // mContextにthisをセット.
        Button button1 = findViewById(R.id.button1);    // button1を取得.
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, "Clicked!", Toast.LENGTH_LONG).show();
            }
        });

    }

}

最初こういう、Buttonを押したらToast表示されるものを、ButterKnifeで書き換える。
build.gradleは、最初、

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

android.enableJetifier=true
android.useAndroidX=true

だけかとおもったが、

android - マニフェストの統合に失敗しました:属性application @ appComponentFactory-Androidx - ITツールウェブ

↑の現象もあり、

最終的には、このようにした。

activity_main.xmlでButtonを配置。

MainActivity.javaはこのように変更。
build.gradleの関係でAppCompatActivityをAndroid Jetpackにしてしまったけど、これはやらなくてもいいほうほうもあったかも。

これでbuttonを押すと
これでbuttonを押すと

これでbuttonを押すと、

Toastが出る
Toastが出る

Toastが出る。

Sample/butterknife/ButterKnife/bind/BK/BK_ at master · bg1bgst333/Sample · GitHub