循环遍历Activity中的所有“小部件”/元素

时间:2010-11-16 13:49:09

标签: java android for-loop widget

我几天前开始使用自己的Android应用程序,因为我需要一个移动应用程序来存储我在医院收集的大量数据。

我对Java和Android环境都很陌生,虽然它看起来很容易理解,但与C ++非常相似。

无论如何,我的应用程序有一堆“EditText”和单选按钮,我的问题是:

如何遍历所有这些小部件(EditTexts和单选按钮)?

在.NET中你可以为“容器中的每个元素”循环做一个但是我似乎无法在Java / android环境中找到一种方法。

注意:我不知道活动中存在多少“小部件”,因为有些是小型创建,其他是硬编码,有些则显示是否设置了某些用户首选项

任何帮助或提示都将不胜感激。

3 个答案:

答案 0 :(得分:5)

for (int i = 0; i < rootView.getChildCount(); i++)
  rootView.getChildAt(i)

请注意,这将返回View-s,您必须在运行时检查您当前正在查看的View类型

答案 1 :(得分:1)

有效。

关于View类型(即Spinner,radioButton,EditText等),我们可以在Layout XML文件中标记我们要解析的每个类型,然后添加一个条件,即:

   if (Widget_Tag != null){   

      View Current_Widget = (View) rootView.getChildAt(i);          

      String Widget_Tag = (String) Current_Widget.getTag();

      if (Widget_Tag.equals("MyEdiText")) {

        //do something

      }
   }

if(Widget_Tag!= null){是为了防止NullPointReferences。您也可以使用Try / Catch进行操作。

答案 2 :(得分:1)

您可以尝试以下代码:

LayoutInflater inflater = getLayoutInflater();
LinearLayout l = (LinearLayout) inflater.inflate(R.layout.main, null);

ViewGroup Current_Widget = (ViewGroup)l.getRootView();

for (int i = 0; i < Current_Widget.getChildCount(); i++)
    Current_Widget.getChildAt(i);