动态地将id分配给在kotlin中单击按钮时创建的edittext [重复]
Posted
技术标签:
【中文标题】动态地将id分配给在kotlin中单击按钮时创建的edittext [重复]【英文标题】:Dynamically assigning ids to edittext created on button click in kotlin [duplicate] 【发布时间】:2021-10-31 14:35:18 【问题描述】:我试图在按钮单击时在 Kotlin 中动态创建编辑文本。按钮单击调用以下函数。点击也会增加计数值。尝试时获取类型异常。 :
int count = 0
fun addrow()
val defect: FloatingActionButton = findViewById(id)
val gridLayout: GridLayout = findViewById(gl)
gridLayout.visibility = View.VISIBLE
val eqp = EditText(this)
eqp.hint = "Eqp"
eqp.textSize = 14F
eqp.width = 200
eqp.id = ("R.id"+count).toInt() //Error for this command
【问题讨论】:
您不能将该字符串强制转换为Int
。请改用View.generateViewId()
。
请参考这个答案。 ***.com/questions/18207623/…
【参考方案1】:
方法一:
您可以使用 XML 资源文件设置稍后在 R.id
类中使用的 ID 列表:
1- 创建以下文件res/values/ids.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="view1" />
<item type="id" name="view2" />
<item type="id" name="view3" />
</resources>
2- 在您的活动中,您可以调用
eqp.id = R.id.view1
方法二:
从 API 17 开始,您可以使用View.generateViewId()
:
view.setId(View.generateViewId());
对于面向 API 级别 16 或更低级别的应用,请改用 ViewCompat.generateViewId()
:
view.setId(ViewCompat.generateViewId());
【讨论】:
感谢大家的回复。将尝试您的建议并回复您:)以上是关于动态地将id分配给在kotlin中单击按钮时创建的edittext [重复]的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 检查并在提交按钮单击时动态地将文本添加到表格中
当我单击添加行按钮时,如何在 html 中动态地将行添加到表单中?
将字符分配给在 C 中使用 malloc 声明的二维数组时收到警告
在我的微调器 POJO 中,我有 id 和 name。所以在按钮单击时,我想在 kotlin android 中发送我的微调器 ID 而不是名称