programacion - manual de android en pdf
Cómo iterar a través de los elementos de una vista (3)
He hecho algo similar en algún código que no tengo conmigo en este momento, pero de memoria debería ser algo como esto (suponiendo que un padre vea LinearLayout con un id de "diseño"):
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;
}
Tengo una vista con radios, entradas y un botón y cuando hago clic en él, quiero verificar que todas las entradas contengan información. ¿Cómo puedo iterar a través de los elementos de la vista en la actividad y verificar si cada vista de texto cumple con el requisito antes mencionado? Gracias.
Para aplicar el método por kcoppock recursivamente, puede cambiarlo a esto:
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);
}
}
}
Your onClickListener
suministra el objeto View v
; use View rV = v.getRootView()
para posicionarse en el formulario. Luego use rV.findViewWithTag( ... )
o rV.findViewByID(R.id. ... )
para ubicar los elementos de su formulario.