我想在android java中动态添加不超过5个编辑文本的编辑文本



我需要在单击按钮时逐个动态添加5个输入字段(EditText(,并希望从中获取值,并使用带有MVVM的Room Persistence将其存储到数据库中。

这里我添加了视图动态

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);
}

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

添加基于子计数的视图

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);
}
}

"当我点击Add按钮时,它正在一个接一个地添加输入字段,这段代码正在运行,但我只想限制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++;
}
}

最新更新