我几天前开始使用自己的Android应用程序,因为我需要一个移动应用程序来存储我在医院收集的大量数据。
我对Java和Android环境都很陌生,虽然它看起来很容易理解,但与C ++非常相似。
无论如何,我的应用程序有一堆“EditText”和单选按钮,我的问题是:
如何遍历所有这些小部件(EditTexts和单选按钮)?
在.NET中你可以为“容器中的每个元素”循环做一个但是我似乎无法在Java / android环境中找到一种方法。
注意:我不知道活动中存在多少“小部件”,因为有些是小型创建,其他是硬编码,有些则显示是否设置了某些用户首选项
任何帮助或提示都将不胜感激。
答案 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);