2014-12-01 102 views
-2

从多个EditText上的文字在我的申请,我动态上的按钮创建多个editTexts点击这样的:如何让机器人

  @Override 
      public void onClick(View v) 
      { 
       EditText et= new EditText(MainActivity.this); 
       et.setInputType(InputType.TYPE_CLASS_TEXT); 
       ll.addView(et);// ll is Linear Layout. 
      } 

现在我想从创建上的所有edittexts获取文本按钮单击一个字符串。我不知道如何做到这一点。有人请帮助我。

回答

1

像这样的事情应该可以帮助您:

String assembledString = ""; 
    View tempView; 
    for(int i = 0; i < ll.getChildCount(); i++){ 
     tempView = ll.getChildAt(i); 
     if(tempView instanceof EditText){ 
      assembledString += ((EditText) tempView).getText().toString(); 
     } 
    } 

基本上假设LL是某种类型(帧,线性,相对的),你可以做getChildCount()的布局。这可以让你循环所有的孩子。然后它只是一个获取视图并检查其EditText的情况。如果是这样,那么你可以抓住字符串,并做任何你想要的。

祝你好运。

2

使用父类的容器:

List<EditText> edits = new ArrayList<EditText>(); 
... 
@Override 
public void onClick(View v) 
{ 
    EditText et= new EditText(MainActivity.this); 
    et.setInputType(InputType.TYPE_CLASS_TEXT); 
    ll.addView(et);// ll is Linear Layout. 
    edits.add(et); 
} 

然后遍历该列表来获取文本。

+1

这是一个比一个更好的答案了[接受一个] (http://stackoverflow.com/a/27232653),因为这个答案不**做假设,我们想抓住所有的孩子编辑文本视图。如果我们有一些特殊的(例如标题)视图,我们可能不希望这样做,我们想要跳过并单独处理。 – 2014-12-01 18:32:46

1

遍历“的LinearLayout”的孩子的,并得到他们的文字做你想要

String text = ""; 

for(int i =0;i<ll.getChildCount();i++) 
{ 
    try 
    { 
     text += ((EditText)ll.getChildAt(i)).gettext().toString(); 
    } 
    catch(Exception e) 
    { 
    } 

} 

这将肯定工作什么都..