【发布时间】:2022-08-14 11:14:41
【问题描述】:
我正在创建一个数据库,其中包含用户可输入的房间数量。对于该数量,我想创建 EditText 字段,然后用户可以在其中输入空间的个性化名称,而不是我生成的通用名称。
我以为我已经弄清楚如何解析来自初始 Child EditText 字段的数据并将新的 EditText 添加到具有提供的数量的适当布局中,但它似乎不起作用。
我已经粘贴了布局 XML 的示例以及支持我目前为完成此任务所做的工作的相关代码。
我想添加用户可设置名称行以挂起来自 input_brQty 字段的输入的布局。如果重要,此线性布局位于 ScrollView 内
<LinearLayout
android:layout_width=\"match_parent\"
android:layout_height=\"48dp\"
android:orientation=\"horizontal\">
<EditText
android:id=\"@+id/input_brQty\"
android:layout_width=\"48dp\"
android:layout_height=\"match_parent\"
android:ems=\"10\"
android:gravity=\"center\"
android:inputType=\"number\" />
<TextView
android:id=\"@+id/textAddBed\"
android:layout_width=\"292dp\"
android:layout_height=\"48dp\"
android:ems=\"10\"
android:gravity=\"\"
android:paddingStart=\"8dp\"
android:scrollHorizontally=\"false\"
android:text=\"Additional Bedrooms\" />
</LinearLayout>
</LinearLayout>
用于识别 input_brQty 输入变化的代码。
// secondary Bedroom QTY
binding.inputBrQty.doOnTextChanged { text, start, count, after ->
if (bed.isNotEmpty())
if (bed.toInt() > 0)
CreateLayout(bed.toInt(), binding.secBr, \"Secondary Bedroom \", roomList)
}
执行实际创建和存储创建的 ID 的函数,以便稍后我可以获取数据以推送到数据库。
fun CreateLayout(
qty: Int,
parent: LinearLayout,
textDisplay: String,
storage: MutableList<String>
) {
var tmp = 1
while (tmp < qty) {
val editText = EditText(this)
editText.layoutParams = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
editText.setText(textDisplay + tmp)
editText.isVisible = true
editText.id = View.generateViewId()
// Add EditText to LinearLayout
parent.addView(editText)
// add to list for retrieval later
storage.add(editText.id.toString())
// update iterator
tmp++
}
-
如果我理解您的问题,您需要激活动态编辑文本吗?就像你有一个 edtxt。如果 value_change > 0 ,您需要添加另一个 editext 并在那个 edtxt 中,如果 value_change>0 它会添加新的并递归地继续?请让我知道这是您必须实现的目标。
-
我有 1 个编辑文本。如果该输入 > 0,我想将这么多 EditText 字段添加到布局中,并填充“名称”并可供用户编辑。当用户单击提交按钮时,我会将这些名称收集到数据库中。
-
您需要如何添加edittext?
-
这取决于输入到 input_brQty EditText 字段中的数量。如果用户输入 2,那么我将创建 2 个新字段,如果输入 3,则创建 3 个新字段,依此类推
标签: android kotlin android-edittext onchange