2012-04-28 118 views
1

我创建了EditText视图动态地,现在我想将它们的文本放入一个列表或数组中,我该怎么做?动态创建EditText并从EditText获取它们的文本

+1

检查了这一点:http://stackoverflow.com/questions/7200108/android-gettext-from-edittext-field或者你可以阅读EditText的[文档](http://developer.android.com/reference/android/widget/EditText.html)。 – Rainulf 2012-04-28 07:50:46

回答

3

你必须让你的edittexts参考,而你是dynalically他们创造这样的..

EditText ed; 
    List<EditText> allEds = new ArrayList<EditText>(); 

for (int i = 0; i < count; i++) { 
    //count is number of edittext fields 
ed = new EditText(MyActivity.this); 
allEds.add(ed); 

linear.addView(ed); 
} 

现在allEds将有引用您的edittexts ..你可以得到这样的文字。 。

String [] items=new String[allEds.size()] 
for(int i=0; i < allEds.size(); i++){ 
items[i]=allEds.get(i).getText().toString(); 
} 
2

您可以创建“用于存储动态创建EditText■一个的,一个用于存储其文本的两大List

然后使用for-each循环遍历EditText列表并获取每个EditText的文本并将其添加到文本列表。

List<EditText> myList = new ArrayList<EditText>(); 
List<String> etText = new ArrayList<String>(); 
EditText myEt1 = new EditText(this); 
EditText myEt2 = new EditText(this); 
EditText myEt3 = new EditText(this); 
//so on... 

myList.add(myEt1); 
myList.add(myEt2); 
myList.add(myEt3); 

for(EditText et : myList){ 
String settext = et.getText().toString(); 
etText.add(settext); 
} 
+0

这正是我需要thanx .. – ashokk 2012-04-30 05:15:02

1

如果你的问题是可访问这些意见:

// assume ll is your container LinearLayout and your EditTexts inserted in it 
LinearLayout ll; 
int nViews = ll.getChildCount(); 

for (int i = 0; i < nViews; i++) { 
    View child = ll.getChildAt(i); 
    if (child instanceof EditText) { 
     EditText edt= (EditText) child; 
     //... 
    } 
} 
+0

thanx它帮助我 – ashokk 2012-04-30 05:14:07