我想在 android java 中动态添加不少于 5 个编辑文本

I want to add Edit Text dynamically not more not less than 5 Edit Texts in android java

我需要在单击按钮时一个一个地动态添加 5 个输入字段 (EditText),并希望从中获取值并使用 Room Persistence 和 MVVM 将它们存储到数据库中。

我在这里动态添加视图

private void addEditTextView() {
    View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
    EditText val1 = inputView.findViewById(R.id.input_value_1);
    binding.layoutList.addView(inputView);
}

任何建议都会很有帮助。 提前谢谢你。

“当我单击“添加”按钮时,它正在一个接一个地添加输入字段,此代码有效,但我只想限制 5 个字段,不少于不少,并从中获取值。”

如果您想在单击按钮时恰好添加 5 个字段,我建议设计一个包含 5 个字段的片段,然后在单击按钮时将片段膨胀到您的父视图中。然后使用您正在处理的数据对片段进行适当编码。

然后,如果您愿意,可以在单击按钮时缩小片段以清除视图,或者添加一些其他方式来在需要时清除片段。在我看来,比你目前所做的要容易得多。

假设这是某种形式,您不妨在片段中包含一个提交按钮。

您可以简单地定义一个整数并在每次添加 EditText 时增加它,但您应该在每次调用该方法时检查您的整数是否小于 5。

例子

private void addEditTextView() {
int count = 0;
if (count < 5){
View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
EditText val1 = inputView.findViewById(R.id.input_value_1);
binding.layoutList.addView(inputView);
count++;
}
}

根据 child 计数添加视图

private void addEditTextView() {
    if (binding.layoutList.getChildCount() <= 5) {
        View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
        EditText val1 = inputView.findViewById(R.id.input_value_1);
        binding.layoutList.addView(inputView);
    }
}