¿Cuál es el significado de setcontentview (R.layout.main) en Android?

Una actividad es responsable de crear una ventana para que el usuario interactúe. Podemos informar a la actividad sobre nuestra elección de la IU que se rellenará (inflará) en la ventana de la actividad usando setContentView (int layoutResID).
En Android, preferimos crear diseños usando xml.

Ahora, main.xml es un recurso de diseño que tiene la estructura de la interfaz de usuario como se define. Queremos acceder a este recurso de diseño en el código Java de la actividad e indicar a la actividad que complete (infle) esta IU en la ventana de la actividad.

Pero, ¿cómo hacemos referencia al xml en el código Java de la actividad?

aapt (Herramienta de empaquetado de activos de Android) genera automáticamente R.java que contiene los ID de recursos para todos los recursos en el directorio res /.

Un ” diseño ” de clase interna estático dentro de R.java contiene el ID de recurso para main.xml como un campo con el nombre ” main “.

main es un campo estático dentro de la clase de diseño, por lo tanto, debe referenciarse con el nombre de la clase adjunta; layout.main .
Pero, el diseño es una clase interna estática dentro de la clase ” R “.

Por lo tanto, hacemos referencia al ID del recurso de diseño en el código de actividad usando R.layout.main y lo pasamos a setContentView (int layoutResID) dentro de la actividad.