我从wordpress的 REST API (json)获取一些数据。
使用这些数据,我正在创建一些 EditText ,并将API的值添加到EditText中。我想设置一个ID,以便我创建的两个EditText可以互相使用(以计算为准:价格*数量)
但是,当我尝试添加ID时,Android Studio表示它必须为 int (与我们在XML中所做的不同,这是通常的用法吗?)。
val input = EditText(this)
input.id = id //dynamically equals 5
val test = findViewById<EditText>(5) //5 as ID is not working...
我在这方面想念什么?
答案 0 :(得分:1)
这是您的示例:
val editText = EditText(this)
editText.id = 5
val test = findViewById<EditText>(5)
这不起作用,因为'5'不是有效的ID,因为ID必须是十六进制int,并且必须与其他视图的ID不同。因此,达到目标的更好方法是执行以下操作:
val editText = EditText(this)
editText.id = View.generateViewId()
val test = findViewById<EditText>(editText.id)
根据View.generateViewId()
的文档:
生成一个适合在setId(int)中使用的值。此值不会与Aapt for R.id在生成时生成的ID值冲突。
但是我不知道为什么需要“测试” EditText,这样您将拥有2个EditText对象,它们引用相同的View。