3

我正在尝试创建一个视图,用户可以在其中单击“加号”按钮,并创建其他 EditTexts。目标是拥有 2 个 EditTexts 的基础,并且每次用户单击按钮时,再添加 2 个 EditTexts。

我怎样才能做到这一点?我可以从 Java 添加 EditTexts,但我不知道如何动态添加和处理它们的列表。

我希望采取许多对 EditTexts,并将其推送到键/值 HashMap 或其他东西中。

关于如何做到这一点的任何想法?谢谢!

4

3 回答 3

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

}
于 2012-07-16T19:23:38.453 回答
3

ListView中执行此操作。然后您可以将它们添加到 ListAdapter。

然后使用adapter.notifyDatasetChanged()

于 2012-07-16T19:05:33.513 回答
0

可能是我不清楚,但您可以在此处添加作为线性布局之类的组视图,而不是添加单独的编辑文本,您还可以使用任何标志值来添加动态名称转换。

您可以将该视图更新为列表视图,例如在列表视图中膨胀行......

于 2012-07-19T10:12:03.043 回答