Android开发:如何获取ViewGroup的所有EditText子项?

时间:2011-04-12 16:36:42

标签: java android android-edittext children

基本上,我有一个LinearLayout,它包含一个随机数量的水平LinearLayouts,并且在每个水平LinearLayouts中都有一个TextView和一个EditText。我希望能够获得主LinearLayout的每个EditText子项的值。

对不起,如果它令人困惑,我不擅长解释事情!

我可以为每个EditTexts设置相同的ID然后使用findViewById,还是只返回EditText的第一个实例?

谢谢, 亚历克斯。

3 个答案:

答案 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。