Pregunta Comprenda la clase R en Android


En Android, no estoy seguro de haber entendido bien el R clase. 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 declaración 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.


56
2017-07-23 23:55


origen


Respuestas:


R.java es la clase generada dinámicamente, creada durante el proceso de compilación para identificar dinámicamente todos los activos (desde cadenas hasta widgets de Android y diseños), para su uso en clases de Java en la aplicación de Android. Tenga en cuenta esto 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 construcciones de lenguaje Java. Echar un vistazo aquí, para más detalles.


79
2017-07-24 00:05



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 res archivo.

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)

Leer el Guía de recursos en Android Developers para más información sobre esto.


35
2017-07-24 00:05



R la clase es generada por las herramientas de Android de sus recursos antes de compilar 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 tuviste R clase, 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 compilació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 diseño


17
2017-07-24 00:13