//package com.example.kotlincheckbox
import android.os.Bundle
import android.util.TypedValue
import android.view.Gravity
import android.widget.CheckBox
import android.widget.LinearLayout
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.kotlincheckbox.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
// Array of CheckBox
val checkBox = arrayOfNulls<CheckBox>(2)
val context = applicationContext
val status = arrayOf(
"未チェックです",
"チェックされた",
"チェックされてない")
val machParent = LinearLayout.LayoutParams.MATCH_PARENT
val layout = LinearLayout(context)
layout.orientation = LinearLayout.VERTICAL
layout.layoutParams = LinearLayout.LayoutParams(
machParent, machParent)
// 背景色
//layout.setBackgroundColor(Color.parseColor("#ddffee"))
layout.gravity = Gravity.CENTER_VERTICAL
setContentView(layout)
// CheckBox 1, 2
for(args in checkBox) {
val cbox = CheckBox(context)
cbox.isChecked = false
cbox.text = status[0]
cbox.setOnClickListener {
// to get status
val check = cbox.isChecked
if (check) {
cbox.text = status[1]
} else {
cbox.text = status[2]
}
}
// dp unit
val scale = resources.displayMetrics.density.toInt()
val margins = 20 * scale
val wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT
val checBoxLayout = LinearLayout.LayoutParams(
wrapContent, wrapContent
)
checBoxLayout.setMargins(margins * 2, margins, margins, margins);
cbox.layoutParams = checBoxLayout
cbox.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f)
layout.addView(cbox)
}
}
}