基本上,我有一个LinearLayout,它包含一个随机数量的水平LinearLayouts,并且在每个水平LinearLayouts中都有一个TextView和一个EditText。我希望能够获得主LinearLayout的每个EditText子项的值。
对不起,如果它令人困惑,我不擅长解释事情!
我可以为每个EditTexts设置相同的ID然后使用findViewById,还是只返回EditText的第一个实例?
谢谢, 亚历克斯。
答案 0 :(得分:6)
LinearLayout ll = //Your Layout this can be any Linear or Relative layout
//in which you added your spinners at runtime ;
int count = ll.getChildCount();
for(int i =0;i<count;i++)
{
View v = ll.getChildAt(i);
if(v instanceof Spinner)
{
// you got the spinner
EditText s = (EditText) v;
Log.i("Item selected",s.getText().toString());
}
}
答案 1 :(得分:2)
findViewById
仅返回具有给定ID的第一个视图。您将不得不自己遍历视图层次结构,至少在您进入每个水平线性布局之前。您会发现方法ViewGroup.getChildCount()
和ViewGroup.getChildAt(int)
对此非常有用。
答案 2 :(得分:1)
您需要在每个LinearLayouts上调用findViewById。如果这样做,您可以为每个EditText设置相同的ID。