首页 > 解决方案 > Kotlin 以编程方式创建复选框和删除复选框

问题描述

当我勾选现有复选框时,我可以动态添加复选框,但是当我取消选中现有复选框时,我似乎无法删除新复选框。

baseCheckBox.setOnClickListener(View.OnClickListener {
            val linearLayout = findViewById(R.id.newLinearLayout) as LinearLayout

            if(baseCheckBox.isChecked){



                val newBox= CheckBox(this)

                newBox.text = "New CheckBox"
                newBox.isChecked = true
                linearLayout.addView(newBox)

            }

            else{
                val tempLayout = findViewById(1) as LinearLayout

            }

标签: androidkotlin

解决方案


一种方法是将新创建的引用存储Checkbox在 的标签中baseCheckBox,以便获取并删除它:

baseCheckBox.setOnClickListener{
    val linearLayout = findViewById<LinearLayout>(R.id.newLinearLayout)

    if (baseCheckBox.isChecked) {
        val newBox = CheckBox(this)
        newBox.text = "New CheckBox"
        newBox.isChecked = true
        linearLayout.addView(newBox)
        baseCheckBox.setTag(newBox)
    } else {
        try {
            val cb = baseCheckBox.tag as CheckBox
            linearLayout.removeView(cb)
            baseCheckBox.tag = null
        } catch (e: Exception) {
        }
    }
}

推荐阅读