我正在尝试创建一个视图,用户可以单击“加号”按钮,并创建其他EditTexts。目标是有2个EditTexts的基础,每次用户点击按钮时,添加另外2个EditTexts。
我该怎么做?我可以从Java添加EditTexts,但我无法弄清楚如何动态添加和处理它们的列表。
我希望能够使用多对EditTexts,并将其推入键/值HashMap或其他东西。
有关如何做到这一点的想法?谢谢!
答案 0 :(得分:4)
public class MyActivity extends Activity {
private LinearLayout main;
private int id = 0;
private List<EditText> editTexts = new ArrayList<EditText>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main = new LinearLayout(this);
main.setOrientation(LinearLayout.VERTICAL);
Button addButton = new Button(this);
addButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
addEditText();
}
});
Button submit = new Button(this);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
for (EditText editText : editTexts) {
editText.getText().toString();
// whatever u want to do with the strings
}
}
});
main.addView(addButton);
main.addView(submit);
setContentView(main);
}
private void addEditText() {
LinearLayout editTextLayout = new LinearLayout(this);
editTextLayout.setOrientation(LinearLayout.VERTICAL);
main.addView(editTextLayout);
EditText editText1 = new EditText(this);
editText1.setId(id++);
editTextLayout.addView(editText1);
editTexts.add(editText1);
EditText editText2 = new EditText(this);
editText2.setId(id++);
editTextLayout.addView(editText2);
editTexts.add(editText2);
}
答案 1 :(得分:3)
在ListView中执行此操作。 然后你可以将它们添加到ListAdapter。
然后使用adapter.notifyDatasetChanged()
答案 2 :(得分:0)
可能我不清楚但是,您可以使用任何标志值添加动态名称转换,而不是添加单独的编辑文本,您可以添加为组视图,如线性布局。
您可以将该视图更新为列表视图,例如在列表视图中对行进行充气....