No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

La clase R

5/20
Recursos

Aportes 27

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En reasumen:
Cuando compilas tu aplicación, cada archivo de diseño XML se compila en un recurso View.
Debes cargar el recurso de diseño desde el código de tu aplicación, en la implementación de devolución de llamada Activity.onCreate().
Para eso, llama a setContentView() pasando la referencia a tu recurso de diseño en forma de R.layout.layout_file_name.

Por ejemplo, mirando el diseño XML activity_main.xml que nos crea Android Studio al crear un empty project,
para poder cargarlo en nuestra actividad lo hariamos de la siguiente manera:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
}

La clase R es una clase que tiene referencia directa a los recursos dentro del package res.
Por ejemplo podriamos acceder al valor app_name dentro del recurso strings.xml asi:

println(R.string.app_name)

(Una pequeña informacion que encontre sobre Layout Main)
.
En Android, el diseño visual se almacena en archivos XML y cada actividad está asociada a un diseño.
.
setContentView(R.layout.main)
.
R significa recurso

layout significa diseño

main es el xml que has creado bajo res->layout->main.xml

Siempre que desee cambiar el aspecto actual de una Actividad o cuando pase de una Actividad a otra, la nueva Actividad debe tener un diseño para mostrar. Llamamos setContentView onCreate con el diseño deseado como argumento.
.
(onCreate es la primera fase del ciclo de vida de un Activity)

  • La clase R es auto generada y a través de ella podemos enlazar nuestros recursos (layout, drawable, color, string etc.) con nuestras clases.

Mis notas de esta Clase:

Referenciar a un Activity en el código de la App

setContentView(R.layout.activity_main)

R → es una Clase autogenerada que hace referencia a los recursos (📁 res) de la app. Usando esta Clase se puede acceder a los recursos dentro del package res

layout → package layout

activity_main → Nombre del archivo xml que define el Activity

Referenciar a un atributo en el código de la App

R.color.red

🛈 Nota: Cuando se compila la App, cada archivo de diseño XML se compila en un recurso View. Los recursos de diseño se deben cargar en el código de la App en la implementación de Activity.onCreate(). Para ello se llama a setContentView() pasando la referencia al recurso de diseño con la sintaxis R.layout.nombre_archivo. Ejemplo:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
}

De manera general, la clase R nos permite referenciar los elementos que vayamos agregando.

Intente seguir el curso, pero es tan vieeeeejooooo que es imposible.

El título de este video no corresponde con el contenido. Corresponde con el video siguiente. Deberían chequearlo, @teamplatzi.

PORQUE M....TRABAJA CON JAVA, SI EMPIEZA INSTALANDO KOTLINNNN

Empiezo a entender mas a fondo el funcionamiento de android, siempre creí que me faltaban bases

Vale, todo se va aclarando poco a poco. Buena clase!

# Qué es? Es una clase que tiene la referencia directa a todos los los recursos dentro del package **res** # Quien la crea? Es generada automáticamente por el proyecto

La Clase R me permite enlazar mis pantallas con Main Activity. Así que puedo tener en el MainActivity este código: package com.MiSitio.MiAplicacion import ... class MainActivity : AppCompatActivity() { O override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedlnstanceState) setContentView( R. layout. MIPANTALLACREADA) } }

No me corre el emulador

Interesante, no lo recordaba,

El código que generemos en los archivos xml en la carpeta layout, normalmente tienen una referencia a una clase (no todos, eso depende), por ejemplo: XML -> activity_main Class -> MainActivity. Si deseamos hacer referencia en una clase hacia un recurso que tengamos, debemos usar directamente la clase global “R”, no se tiene que hacer nada para crear dicha clase, directamente esta clase es creada por android underhood (debajo del capó) y permite referenciar los recursos que tengamos en nuestro proyecto:

  • R.layout.activity_main
  • R.layout.activity_profile
  • R.string.app_name
  • R.color.red

Cabe destacar que cada activity que tengamos en nuestro proyecto, debe estar referenciado en el AndroidManifest.xml de nuestro proyecto para que pueda funcionar.

Clase R
Esta es una clase de Android que nos permite tener acceso a nuestros recursos desde los archivos de logica (Kotlin/Java)

Tengo un problema, cuando apenas abro el android studio, me aparece el error de el contenido no esta permitido en el prologo, soy un newbie en esto de programacion y codigo pero ya he sentado bases y quiero ser un desarrollador full stack para android, les pido por favor para resolver este problema, ya que si no puedo correr el programa no tiene sentido ver las clases

la clase R es autogenerada

es una excelente explicación para hacer referencia nuestras pantallas y propiedades

La clase R tiene referencia a cada uno de los layout

muy buena explicación

❗ Referencia de XML ❗
✔️ Java
✔️ Kotlin

para referenciar cada uno de los archivos o cambios genetaffos en la carpeta res es necesario invocarlo dentro de la clase MainActivity, con ayuda de la clase R

Alguno puede saber porqué me genera este error?

![](

Gente, si a algunos le sale error. fijense que tambien puede ser q no allan actualizado el ide. vallan a Help ->Check for Update. yo tenia el mismo error. incluso el layout no renderizaba nada…

Todos los elementos dentro de res tendrán un ID y la clase R se encarga de conectarlos en el tiempo de compilacion. Si les interesa mas sobre el tema aqui les dejo este articulo

La vista de diseño en Android Studio

Una vez que existan varias pantallas se van a necesitar archivos para manejar la lógica de estas pantallas.

Para referenciar los layouts se usa el método setContentView y mediante la clase R, que es una clase creada por Android que va a tener la propiedad layout y dentro todas las pantallas que se hayan creado.

Mediante esta clase también puedes acceder a todos los demás archivos XML y sus variables (colors, strings, styles, etc.).