如何遍历视图的元素

我有一个无线电,input和一个button的观点,当我点击它,我想检查所有input包含的信息。 我如何迭代活动中的视图元素,并检查每个文本视图是否满足上述要求? 谢谢。

我在一些代码中做了类似的事情,但是从内存来看,它应该是这样的(假设父视图LinearLayout的id为“layout”):

LinearLayout layout = (LinearLayout)findViewById(R.id.layout); boolean success = formIsValid(layout); public boolean formIsValid(LinearLayout layout) { for (int i = 0; i < layout.getChildCount(); i++) { View v = layout.getChildAt(i); if (v instanceof EditText) { //validate your EditText here } else if (v instanceof RadioButton) { //validate RadioButton } //etc. If it fails anywhere, just return false. } return true; } 

recursion地应用kcoppock的方法,可以将其更改为:

 private void loopViews(ViewGroup view) { for (int i = 0; i < view.getChildCount(); i++) { View v = view.getChildAt(i); if (v instanceof EditText) { // Do something } else if (v instanceof ViewGroup) { this.loopViews((ViewGroup) v); } } } 

您的onClickListener提供View v对象; 使用View rV = v.getRootView()将自己定位在表单上。 然后使用rV.findViewWithTag( ... )rV.findViewByID(R.id. ... )来查找表单元素。