私の著書のAndroid SDKポケットリファレンスでまだ対応できていないKotlin化ですが、業務でも利用される機会が多くなってきているかと思います。
少しでもお役に立てるように、Kotlin化した場合にどのように書いていくのかを紹介していくコーナー。
今回はトグルボタンのクリック処理を紹介します。
今回のサンプルコードは以下に公開しています。
それでは始めましょう。
まずはレイアウトの定義です。
android:textOn
とandroid:textOff
で選択状態と選択解除状態のときの表示テキストを設定できるところが特徴です。
<ToggleButton android:id="@+id/sample_toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="選択状態" android:textOff="選択解除状態" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
ToggleButtonの状態変化はsetOnCheckedChangeListener
を使ってコールバックを受け取ります。
val sampleToggle: ToggleButton = findViewById(R.id.sample_toggle) sampleToggle.setOnCheckedChangeListener { _, _ -> Toast.makeText(this, "ToggleButtonの状態が変わりました", Toast.LENGTH_SHORT).show() }
チェック状態の変化をコールバックで受け取る仕組みはチェックボックスと同様です。
以下の記事も参考になるかと思います。
BUILDBOX.net
BUILDBOX.net
Android(SDK,Kotlin,Java,Flutter)と周辺技術に関する記事を更新!
UI的にMaterial Designという感が薄い印象が強いです。
利用していくのであれば、UIをカスタマイズなどしていく必要が出てきそうですし、使う場面は絞られそうな気がします。
しかし、on / offを伝えるのにボタン上のテキストも一緒に変更できるのは便利なものです。
Material Designを取るか、利便性を取るか。よく吟味してから利用してみてください。