findViewById en Fragment de Android

findViewById en Fragment de Android usando Java o Kotlin

Cuando usamos actividades o activities en Android, es fácil obtener un elemento de la vista usando findViewById.

La cosa cambia cuando queremos invocar a findViewById en un Fragment de Android, ya sea usando Java o Kotlin. Es por eso que en este post te mostraré cómo y cuándo invocar a findViewById en un fragment.

findViewById en Fragment de Android usando Java o Kotlin

Ejemplo de invocación a findViewById en Kotlin

Veremos los ejemplos en Java y Kotlin.

findViewById en Fragment

En resumen, lo único que tenemos que hacer es invocar a findViewById desde la vista padre. Esta vista puede ser obtenida dentro del método onCreateView o en el método onViewCreated.

Método 1: en el onCreateView

Seguramente tu fragmento estará sobrescribiendo este método en donde simplemente infla al Layout. Algo así al menos en Java:

Fíjate en la firma del método, estamos regresando la Vista o View así que aquí podemos recuperarla en una variable, definir los elementos y luego regresarla:

Obtenemos la vista en la línea 6, luego invocamos a findViewById desde esa variable y finalmente la devolvemos. Así es como podemos declarar todas nuestras vistas y claramente agregar listeners o cualquier cosa.

Aquí tenemos el ejemplo con Kotlin:

Obtenemos la vista en la línea 4, después invocamos a findViewById, agregamos un listener y al final regresamos la vista.

Método 2: onViewCreated

Este método es invocado cuando la vista ya se ha creado. Recibe una variable de tipo View que tiene el método findViewById. Veamos el ejemplo con Java:

Como ves, al método onViewCreated se le pasa la vista en la variable view. Ignora las anotaciones de NonNull y Nullable, fíjate en que la llamada a findViewById está en la línea 3, y se invoca a partir de la variable que recibimos dentro de la función.

Después de recuperar la variable podemos agregarle listeners o simplemente trabajar con la vista recién obtenida.

El equivalente en Kotlin es:

Recibimos una variable de tipo View dentro de la función, y luego invocamos a findViewById en la línea 2.

Si me preguntas, yo prefiero el método onCreateView.

Te invito a leer más sobre Java y Kotlin en mi blog 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *