2015-10-20 38 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.) 
    } 
}