back to top

Diamo uno sguardo al file R.java – Guida Sviluppo App Android

Nel capitolo precedente, probabilmente, i lettori più attenti avranno fatto caso all’argomento R.id.testo1 (oppure R.id.testo2) passato al metodo findViewById. In questo capitolo andremo, appunto, ad analizzare il contenuto del file R.java il quale ricopre un ruole determinate all’interno delle nostre applicazioni. Apriamo, quindi, il file in questione e diamo uno sguardo al codice sorgente.

Come abbiamo detto nei capitoli precedenti, nel file R.java viene associato una stringa esadecimale per ogni elemento della nostra applicazione. Dato che questa classe viene autogenerata al momento della compilazione quando viene creato il pacchetto di installazione, è opportuno compilare il nostro progetto almeno una volta per poter vedere il codice corretto all’interno del file.

Aprendo il file R.java (all’interno della cartella gen del progetto) troveremo una struttura del codice un po’ particolare. Infatti viene dichiarata la classe R ed al suo interno vengono create altre classi annidate che definiscono gli elementi presenti nella nostra applicazione. Per esempio troviamo la classe annidata layout che conterrà una costante di questo tipo:

public static final int main=0x7f030000;

Quella costante main identifica il nostro file main.xml e la stringa esadecimale verrà utilizzata dal compilatore per effettuare le opportune associazioni.

Scorrendo la struttura del file R.java troviamo anche la classe annidata id. Anche all’interno di questa classe troveremo due costanti che identificano le due TextView con nome testo1 e testo2. Se, per esempio, aggiungessimo una terza TextView con nome testo3 dopo che l’applicazione è stata lanciata automaticamente verrà inserito nel file R.java anche una costante relativa a questo nuovo elemento.

Il file R.java è stato presentato in questa guida al solo scopo didattico in quanto il programmatore non deve mai modificare in alcun modo questo file. Sarà compito del compilatore aggiungere o rimuovere le costanti associati agli elementi. Da notare, infine, che la classe R è definita utilizzando i modificatori public static final (che di fatto identificano una costante) in quanto, durante l’esecuzione dell’applicazione, non sarà necessario modificare il valore degli attributi di questa classe.

Pubblicità

In questa guida...