我有一个a
,其中有多个项目(recyclerView
)。在其中的一个( ViewHolderItemTratamentos )中,我获得了以下元素:
单击第一个“添加ViewHolders
”时,通过button
布局,在前一个元素下方创建相同的元素(inflator
和editText
)。就是这样:
adapter
因此,问题是我无法从holder.add_field_button.setOnClickListener {
holder.parent_linear_layout.apply {
val inflater = LayoutInflater.from(context)
val rowView = inflater.inflate(R.layout.used_products_field, this, false)
holder.parent_linear_layout.addView(rowView, holder.parent_linear_layout.childCount!! - 0)
holder.add_field_button.text = "-"
}
}
的{{1}}中获取id
来生成新行。我应该给这个布局充气吗(这有意义吗?)?我应该给每个button
(静态的和生成的那个)都赋予相同的layout.used_products_field
吗?
R.layout.used_products_field的内容:
id
答案 0 :(得分:0)
您应该在将按钮添加到父级ViewGroup
后获取该按钮,如果您是行单击侦听器块,则该按钮。
holder.add_field_button.setOnClickListener {
holder.parent_linear_layout.apply {
val inflater = LayoutInflater.from(context)
val rowView = inflater.inflate(R.layout.used_products_field, this, false)
addView(rowView, childCount!! - 0) // addView and childCount are available in the scope
holder.add_field_button.text = "-"
val button = findViewById<Button>(R.id.add_field_button) // findViewById is available in the scope
}
}
答案 1 :(得分:0)
您可以在展开的布局(used_products_field
)中获取视图
val inflater = LayoutInflater.from(context)
val rowView = inflater.inflate(R.layout.used_products_field, this, false)
val button = rowView.findViewById<Button>(R.id.add_field_button)
val edittext = rowView.findViewById<EditText>(R.id.number_edit_text)