如何遍历视图的元素
我有一个无线电,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. ... )
来查找表单元素。