ボタンを押したときに呼ばれる関数をKotlinで設定する

ボタンを押したときに呼ばれる関数を設定するには、このButtonのインスタンスを取得し、setOnClickListener でイベントリスナーを設定します。

<Button
    android:text="開く"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/open_btn" />

kotlinでは、Buttonのidでインスタンスにアクセスできるので1行で書けます。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // 省略
    open_btn.setOnClickListener { this.onOpen() }
}

fun onOpen() {
    Log.i("", "onOpen")
}

今回の例では、押されたButtonのオブジェクトは使わないで、引数なしのonOpen関数を呼び出すようにしました。