【问题标题】:How to callback a view created with an ID in Kotlin如何回调在 Kotlin 中使用 ID 创建的视图
【发布时间】:2021-05-20 08:48:25
【问题描述】:

我当前的脚本是

fun addRow(text: String, rowNum: Int){
    val textViewNm: TextView = TextView(this.context)
    textViewNm.text = text
    textViewNm.gravity = Gravity.CENTER
    textViewNm.id = rowNum
    textBox.addView(textViewNm)
}

我想回调和控制由“addRow”函数创建的textViews。

但是我不知道如何用 ID (textViewNm.id = rowNum) 回调它们。

我尝试时没有显示

textViewNm.1 ,2 ,3 // which was rowNum

【问题讨论】:

  • 你可以遍历包含的布局并使用childAt(position)找到视图
  • @IvanWooll 你可以,但这并不能真正给 OP 太多控制权,很难知道他们要更改哪个组件

标签: android kotlin textview generate dynamic-view


【解决方案1】:
textViewNm.1 ,2 ,3 // which was rowNum

这行不通,因为 textView 上没有称为 1、2 或 3 等的属性。

这与使用相同

textViewNm.SomeRandomPropertyWhichDoesNotExist

您可能应该使用另一种方法来查找这些视图,也许使用findViewByIdfinding by tag


您也可以考虑将这些动态组件保存在数组列表中,然后遍历该列表

【讨论】:

  • 谢谢。完全理解。我会尝试“findViewById”。 -----> 更新 ----> 有效。我可以使用“textBox.findViewById(addCounter).text” 来接近他们
  • 你应该看看我在答案中添加的标签方法,你可能会发现成功,我只是写了这个答案来向你解释为什么它不起作用
猜你喜欢
  • 2020-05-23
  • 1970-01-01
  • 2020-04-19
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
相关资源
最近更新 更多