カスタムボタン作成
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”にしておくこと
書き忘れた点があれば追記