存储多个动态EditText值

时间:2012-05-13 17:01:41

标签: android

我有一个代码添加了多个EditText。我如何将它们存储到一个数组中。这个数字10只是一个例子,数字可能比那个大。单击按钮后如何存储

for(int i=0; i<10; i++) {
    String store[] = new String[10];
    EditText addAnsMCQ = new EditText(this);      
    AnswerRG.addView(addAnsMCQ, 1);
    addAnsMCQ.setWidth(200);
    addAnsMCQ.setId(1000);
}

2 个答案:

答案 0 :(得分:0)

您需要保留/获取每个EditText的引用,然后您可以使用.getText()。toString()查找其值,您可以以任何您喜欢的方式存储它。

但是,正如你所说

  

这个数字10只是一个例子,数字可能比那个更大。

如果数字会更大,您应该使用适配器和ListView或其他东西来保存您的View对象。这样可以更轻松地将所有内容都放到屏幕上。并将为您提供回收利用的好处。

答案 1 :(得分:0)

在您的示例中,实际上并未使用store变量,您是否打算使用它来存储EditTexts?

不使用String数组,只需使用EditText数组并存储对它们的引用:

EditText store[] = new EditText[10];

for(int i=0; i<10; i++) {
    EditText addAnsMCQ = new EditText(this);     
    AnswerRG.addView(addAnsMCQ, 1);
    addAnsMCQ.setWidth(200);
    addAnsMCQ.setId(1000);
    store[i] = addAnsMCQ; //store a reference in the array to the EditText created
}

然后在for循环之外,您可以访问每个EditText的引用,例如

store[0].setWidth(300);