2014-12-01 93 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) 
    { 
    } 

} 

這將肯定工作什麼都..