2015-10-20 40 views
0

在我的Activity中,動態插入一個包含EditText的佈局。佈局可以有1到N個EditText。我如何獲得所有EditText的文本?Android從LayoutInflater獲取數據EditText

LinearLayout item = (LinearLayout) findViewById(R.id.rl); 
final View child = getLayoutInflater().inflate(R.layout.inflate_ta, null); 
      item.addView(child); 

MaterialEditText ed = (MaterialEditText) child.findViewById(R.id.ed12); 
       ed.setFloatingLabelText(edNomeCampo.getText().toString()); 
+0

內添加EditText你會遍歷所有視圖以'loop'。 ..在一個變量上保存了多少''Edittext'你動態地放置了一個'loop'到getText – Aspicas

回答

1

最好的方法是通過您動態添加到的任何父視圖中的每個視圖。

所以......

<LinearLayout 
android:id="@+id/wrapper"..> 
<EditText ... /> 
<EditText... /> 
... 
... 
<!--Nth EditText--> 
<EditText... /> 
</LinearLayout> 

然後,一旦你想在每一個動態值,封裝與LinearLayout

LinearLayout yourLinearLayoutView = (LinearLayout)getView().findViewById(R.id.wrapper); 
for(int i=0; i<yourLinearLayoutView.getChildCount(); i++) { 
    View editText= yourLinearLayoutView.getChildAt(i); 
    if(editText instanceof EditText){ 
     String str = ((EditText)editText).getText(); 
     //from here you can store str in whatever structure you wish (AWrrayList, etc.) 
    } 
}