编辑
MByD指出我的错误,所以我的答案几乎和黑带的答案一样.我已经编辑了我的正确方法.
你可以做一个for-each循环,然后检查每个视图是否是EditText类型:
ArrayList myEditTextList = new ArrayList();
for( int i = 0; i < myLayout.getChildCount(); i++ )
if( myLayout.getChildAt( i ) instanceof EditText )
myEditTextList.add( (EditText) myLayout.getChildAt( i ) );
您也可以使用一个EditText列表,而不必使用ID列表,然后将该子节点的id添加到列表中:myIdList.add(child.getId());
要访问您的布局,您需要获得它的参考.这意味着您需要在XML中为您的布局提供ID:
//Here is where your EditTexts would be declared
那么当你在活动中夸大布局时,你只需要保存对它的引用:
LinearLayout myLinearLayout;
public void onCreate( Bundle savedInstanceState ) {
super( savedInstanceState );
setContentView( R.layout.myLayoutWithEditTexts );
...
myLinearLayout = (LinearLayout) findViewById( R.id.myLinearLayout );
}
然后,您可以在活动中引用您的EditText的持有人.