Java “循环通过全部”;“小部件”/活动中的元素
几天前,我启动了自己的android应用程序,因为我需要一个移动应用程序来存储我在医院收集的大量数据 <>我对java和Android环境很陌生,虽然它看起来很容易理解,与C++非常相似。 无论如何,我的应用程序有一堆“编辑文本”和单选按钮,我的问题是: 如何遍历所有这些小部件(编辑文本和单选按钮) 在.NET中,您可以执行“for each element In container”循环,但在Java/android环境中,我似乎找不到这样做的方法 注意:我不知道活动中存在多少“小部件”,因为有些是通过友好方式创建的,有些是硬编码的,有些则显示是否设置了某些用户首选项 任何帮助或提示都将不胜感激。Java “循环通过全部”;“小部件”/活动中的元素,java,android,for-loop,widget,Java,Android,For Loop,Widget,几天前,我启动了自己的android应用程序,因为我需要一个移动应用程序来存储我在医院收集的大量数据 我对java和Android环境很陌生,虽然它看起来很容易理解,与C++非常相似。 无论如何,我的应用程序有一堆“编辑文本”和单选按钮,我的问题是: 如何遍历所有这些小部件(编辑文本和单选按钮) 在.NET中,您可以执行“for each element In container”循环,但在Java/android环境中,我似乎找不到这样做的方法 注意:我不知道活动中存在多少“小部件”,因为有些
for(int i=0;ifor (int i = 0; i < rootView.getChildCount(); i++)
rootView.getChildAt(i)
rootView.getChildAt(一)
请注意,这将返回View-s,您必须在运行时准确检查当前查看的视图类型,它可以正常工作
关于视图类型(即微调器、radioButton、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
}
}
if(Widget_Tag!=null){用于防止NullPointReferences。您也可以使用Try/Catch来执行此操作。您可以尝试以下代码:
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);
LayoutInflater充气机=getLayoutInflater();
LinearLayout l=(LinearLayout)充气器充气(R.layout.main,空);
ViewGroup Current_小部件=(ViewGroup)l.getRootView();
对于(int i=0;i
很有意思。但起点是一个活动。因此,您的演示缺少从活动到rootView的步骤;-)-我可能自己能找到,但这会很好。就像我对应用程序说的那样:rootView
来自何方。