android - 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
}
解决方案
一种方法是将新创建的引用存储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) {
}
}
}
推荐阅读
- python - 如何确认我的 pytorch 模型的权重是否已量化
- php - 在我的数据库类中使用 lastInsertID()
- javascript - 未处理的拒绝(TypeError):无法读取未定义的属性(读取“错误”)
- android - Android:TextView 中的文本未修剪
- c# - 检测字符串 C# 中的不可显示字符
- python-3.x - 字符串在列表元素python中显示为字符的子集
- javascript - Discord bot 在命令处理程序问题中嵌入消息
- python - 如果我们不能使用索引列,如何将一个数据框的特定值移动到另一个?
- travis-ci - 从 .travis CI 迁移到 GITHUB 操作
- mysql - mysql | 插入声明 | 尝试获取锁时发现死锁;尝试重启事务