Comprenda la clase R en Android

En Android, no estoy seguro de entender la clase R Estoy repasando el ejemplo de sudoku, y tengo este fragmento de código:

 switch (v.getId()) // the id of the argument passed is evaluated by switch statement { case R.id.about_button: // Intent i = new Intent(this, about.class); startActivity(i); break; // More buttons go here (if any) ... } 

Soy nuevo en Java, pero por lo que veo, parece que está recibiendo entrada (tocando la pantalla táctil en el botón) y evaluando el argumento. Luego, la statement de caso se configura si se reconoce el botón Acerca de, y se crea una nueva pantalla de interfaz y luego se navega por el teléfono.

¿Es esto correcto?

Si entendí bien, ¿por qué es el trato con la clase “R”?

¿Por qué se llama para reconocer la ID del botón?

Pensé que la súper clase (en este proyecto) era la clase SudokuActivity.

R.java es la clase generada dinámicamente, creada durante el proceso de comstackción para identificar dinámicamente todos los activos (desde cadenas a widgets de Android a diseños), para su uso en clases de Java en la aplicación de Android. Tenga en cuenta que R.java es específico de Android (aunque es posible que pueda duplicarlo para otras plataformas, es muy conveniente), por lo que no tiene mucho que ver con las construcciones de lenguaje Java. Mire aquí , para más detalles.

R es una clase que contiene SOLAMENTE constantes públicas. (público estático final).

Es una clase generada (por Android Plugin en Eclipse) que refleja los diversos valores que definió en el archivo res .

Por ejemplo, deberías tener algo como:

 android:id="@+id/about_button" 

en algún lugar de su archivo xml de diseño / menú en el proyecto, y una vez que haya escrito eso, Eclipse generará una constante en el archivo R (que puede encontrar en gen/PACKAGE/R.java )

Lea la guía de recursos en Desarrolladores de Android para obtener más información al respecto.

R clase R se genera con las herramientas de Android de sus recursos antes de comstackr su código. Contiene la constante numérica asignada para cada recurso al que puede hacer referencia en su proyecto. Por ejemplo, tiene un archivo de recursos XML que contiene about_button . Si no tuviera una clase R , tendría que usar una cadena “about_button” para referirse a ella en el código. Si comete un error en esta cadena, solo obtendrá información al ejecutar su aplicación. Con R , verá el error mucho antes en el momento de la comstackción.

R está estructurado de tal manera que puede referirse a los recursos a través de sus clases internas. Por ejemplo, R.id contiene constantes de identificación y R.layout contiene constantes de disposición.