动态地将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 声明的二维数组时收到警告

如何将按键分配给在循环中创建的 QPushButton

在我的微调器 POJO 中,我有 id 和 name。所以在按钮单击时,我想在 kotlin android 中发送我的微调器 ID 而不是名称

在Android中动态单击按钮添加微调器