Cómo iterar a través de elementos de una vista
Tengo una vista con radios, entradas y un botón y cuando hago clic en él, quiero comprobar que todas las entradas contienen información. ¿Cómo puedo iterar a través de los elementos de la vista en la actividad y comprobar si cada vista de texto cumple con el requisito antes mencionado? Gracias.
- Cómo obtener una referencia al grupo de vista principal
- Esquina redondeada para texto en android
- EditText ellipsize (tres puntos ...)
- Android: ¿Cómo cambiar el enfoque en el formulario con la acción del usuario?
- ¿Cómo puedo evitar el desplazamiento salvaje cuando un campo de formulario de entrada de texto de posición fija obtiene el foco?
- Los archivos XAML.g.cs generados automáticamente no se pueden compilar en el proyecto PCL Xamarin Forms
- Cómo cambiar el color por defecto cuando el interruptor está "on" (azul a verde) en formas xamarin. En defecto del ios es GReen pero en androide es azul
- Teclado rápidamente se oculta y reaparece en Android usando Xamarin Forms
- Diseño desplazable en Android
- Cómo dibujar un ShapeDrawable más pequeño dentro de otro shapeDrawable programaticamente
- Xamarin Forms Android Problemas, el paquete android.support.design. * No existe
- ¿Puedes manejar eventos en formas irregulares en Android?
- Okhttp loggin interceptor en varias partes
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 ver LinearLayout con un id de "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; }
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); } } }
Su onClickListener
suministra el objeto View v
; View rV = v.getRootView()
para posicionarse en el formulario. A continuación, utilice rV.findViewWithTag( ... )
o rV.findViewByID(R.id. ... )
para localizar los elementos del formulario.
- ¿Cómo llenar una vista con otra con Material Design Animation?
- Android: alternativa para context.getDrawable ()