Android Kotlin カスタムボタンを作成後、ボタン不活性活性

カスタムボタン作成



class HogeButton @JvmOverloads constructor(
context: context,
attribute: AttributeSet? = null
) : AppCompatButton(context, attribute) {
init {
// 文字色
ContextCompat.getColor(context, R.color.hoge).also { setTextColor(it) }
// 背景色
ContextCompat.getDrawable(context, R.drawable.hoge_round_button)?.also { background = it}

drawable内にhoge_round_buttonを追加

下記のように書くと、ボタンのstate状態をオンオフ出来る(不活性活性)

<item android:state_enabled=”false”>
<shape android:shape=”rectangle”>

<corners android:radius=”8dp”/>
<solid android:color=”green”/>

</shape>
</item>

<item android:state_enabled=”true”>
<shape android:shape=”rectangle”>

<corners android:radius=”8dp”/>
<solid android:color=”green_weak”/>

</shape>
</item>

チェックボックスにチェックが入っていれば活性、そうでなければ不活性

fun check() {
val check = binding?.hogeCheckBox?.isChecked
if (check != null) {
binding?.hogeButton?.isEnabled = true
} else {
binding?.hogeButton?.isEnabled = false
}

ちなみに、初期状態から不活性にしておきたい場合は、xmlファイルでボタンの箇所に

android:enabled=”false”にしておくこと

書き忘れた点があれば追記

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です