我需要在单击按钮时逐个动态添加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++;
}
}