Android:在运行时创建EditText
我正在尝试创建一个视图,用户可以单击“加号”按钮,并创建其他EditTexts。 目标是有2个EditTexts的基础,每次用户单击该按钮时,添加另外2个EditTexts。
我怎样才能做到这一点? 我可以从Java添加EditTexts,但我无法弄清楚如何动态添加和处理它们的列表。
我希望采用多对EditTexts,并将其推入键/值HashMap或其他东西。
有关如何做到这一点的任何想法? 谢谢!
public class MyActivity extends Activity { private LinearLayout main; private int id = 0; private List editTexts = new ArrayList (); @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); }
在ListView中执行此操作。 然后你可以将它们添加到ListAdapter。
然后使用adapter.notifyDatasetChanged()
可能我不清楚但是,您可以使用任何标志值添加动态名称转换,而不是添加单个编辑文本,您可以像线性布局一样添加为组视图。
该视图可以更新到列表视图中,就像在列表视图中膨胀行一样….