循环浏览活动中的所有“小部件”/元素
由于我需要移动应用程序来存储我在医院收集的一堆数据,因此我几天前创建了自己的Android应用程序。循环浏览活动中的所有“小部件”/元素
我对Java和android环境相当陌生,虽然它看起来很容易理解并且非常类似于C++。
不管怎样,我的应用程序有一堆“的EditText”和单选按钮的,我的问题是:
我怎么能遍历所有这些部件(EditTexts和单选按钮)?
在.NET中,你可以做一个“为容器中的每个元素”循环,但我似乎无法找到一种方法来在Java/Android环境中执行此操作。
注:我不知道。“小部件”存在多少的活动,因为有些dinamicaly创建,别人硬编码和其他一些显示,如果某些用户首选项设置
任何帮助或提示为赞赏。
for (int i = 0; i < rootView.getChildCount(); i++)
rootView.getChildAt(i)
注意这将返回查看-S,你将不得不在运行时准确地检查什么类型查看你正在看
它的工作原理。
关于视图类型(即微调,单选按钮,EditText上,等等),我们可以标记我们想要的布局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
}
}
的,如果( Widget_Tag!= null){是为了防止NullPointReferences。你也可以用Try/Catch来做它。
就像我对应用说的那样:'rootView'来自哪里。 – Martin 2012-01-01 18:26:48
你可以试试这个代码:
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);
这个技巧似乎是在朝着正确的方向指向。 – Tivie 2010-11-16 22:15:55
有趣。但起点是一个活动。所以你的演示中缺少从活动到rootView的步骤;-) - 我可能可以自己弄清楚,但它本来不错。 – Martin 2012-01-01 18:25:48