Le fichier R.java est généré automatiquement par le compilateur, il ne nécessite pas de maintenance des développeurs. R.java inclura automatiquement toutes les ressources de l'application actuelle et créera les identifiants correspondants basés sur ces ressources. R.java peut être simplement compris comme le dictionnaire de ressources de l'application Android actuelle.
L'environnement d'exploitation de ce tutoriel : système windows7, version java10, ordinateur DELL G3.
1. Introduction au fichier R.java
Dans Android studio, le répertoire où se trouve R.java est : app/build/generated/source/r/arm/debug/com.example.dfanghu.myapplication/R. java
gen Le fichier R.java du répertoire est automatiquement généré par le compilateur et ne nécessite pas de maintenance des développeurs. R.java collectera automatiquement toutes les ressources de l'application actuelle et établira les identifiants correspondants en fonction de ces ressources, notamment : les ressources de mise en page, les ressources de contrôle, les ressources String, les ressources Drawable, etc. Nous pouvons simplement comprendre R.java comme le dictionnaire de ressources de l'application Android actuelle.
En partant du principe que le projet actuel ne peut contenir aucune erreur, si vous supprimez manuellement le fichier R.java, le compilateur régénérera immédiatement un fichier R.java ; si vous ajoutez une nouvelle ressource au répertoire res/, le compilateur le fera ; Incluez immédiatement l'ID de cette ressource dans le fichier R.java. , mais il y a une prémisse, c'est-à-dire que le projet actuel ne peut contenir aucune erreur. Lorsqu'il s'avère que R.java n'inclut pas cette ressource après sa mise à jour, vous devez vérifier s'il y a des erreurs dans le projet en cours.
2. Analyse du contenu du fichier R.java
Fichier R.java dans le projet HelloWorld
package com.android.hellworld; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; } }
Il y a quatre classes internes statiques par défaut dans le fichier R.java : attr, drawable, layout, string, etc. la classe est séparément Correspond à une ressource, telle qu'une classe interne statique de mise en page correspondant au fichier d'interface dans la mise en page. Chaque constante statique de la classe interne statique définit un identifiant de ressource, tel que public static final int main=0x7f030000; répertoire de mise en page.
Puisqu'il n'y a actuellement qu'un seul fichier image icon.png dans le répertoire [drawable-*dpi], les fichiers icon.png avec le même nom avec des détails différents n'ont toujours qu'un seul attribut d'icône dans la classe interne drawable. Si nous ajoutons une autre image dans le répertoire [drawable-*dpi], un attribut icon sera automatiquement ajouté à la classe interne.
PS : Ajoutez des règles de dénomination pour les ressources : les fichiers de ressources ne peuvent commencer que par des lettres minuscules et des traits de soulignement, et seuls [a-z0-9_.] peuvent apparaître dans les noms suivants, sinon le fichier R.java ne sera pas automatiquement mis à jour. et Eclipse provoquera une erreur.
Comprenez la source du contenu du fichier R.java, c'est-à-dire que lorsque le développeur ajoute un fichier du type correspondant dans n'importe quel sous-répertoire du répertoire res/, ADT générera automatiquement un fichier dans la classe interne correspondante dans le Fichier R.java Une constante de type int statique qui indexe le fichier ajouté. Si une nouvelle interface est ajoutée au répertoire de mise en page, la constante static int correspondante sera également ajoutée à la disposition publique de la classe finale statique. Au contraire, lorsque nous supprimons un fichier du répertoire res, son enregistrement correspondant dans R.java sera automatiquement supprimé par ADT.
En plus de la fonction d'indexation de marquage automatique des ressources, le fichier R.java a également une autre fonction principale si une ressource du répertoire res n'est pas utilisée dans l'application, le système les ressources correspondantes ne seront pas compilées dans le. Package APK de l’application, qui permet d’économiser des ressources sur le téléphone Android.
3. Comment référencer les ressources requises via le fichier R.java
1 Ressources de référence dans le programme java
Référence selon la syntaxe java : R.resource_type.resource_name
Remarque : resource_name ne nécessite pas de fichier. Le suffixe nom
Le système Android lui-même est livré avec beaucoup de ressources, on peut aussi les référencer, il suffit d'ajouter "Android" devant pour déclarer que la ressource provient du système Android, c'est-à-dire : Android. .R.resource_type.resouce_name
Exemple : icon.png sous [drawable-*hpi]
L'image est mappée dans le fichier R.java au paramètre icon sous la classe interne drawable. Si vous souhaitez obtenir cette ressource, la méthode d'écriture est : R.drawble.icon
2. Ressources de référence dans les fichiers XML
Format : @[package:]type/name
Obtenez-le via "@drawable/icon" dans les fichiers XML, tels que main. xml et AndroidMainfest.xml. Parmi eux, « @ » représente la classe R.java. "drawable" représente la classe interne statique "drawable" dans R.java, "/icon" représente l'attribut statique "icon" dans la classe interne statique "drawable", et cet attribut peut pointer vers "drawable-* dans le répertoire res dpi" ressource icône.png. D'autres types de fichiers sont similaires. Toutes les ressources définies dans les fichiers R peuvent être obtenues via "@Static_inner_classes_name/resource_name". Tels que « @id/button », « @string/app_name ».
Si vous accédez aux fichiers fournis avec le système Android, vous devez ajouter le nom du package « Android : ». Par exemple : android:textColor="@android:color/red"
4. Comment ajouter un enregistrement de ressource au fichier R.java
.Dans le fichier de mise en page, lorsque nous devons ajouter l'attribut Id comme identifiant pour certains composants, nous pouvons utiliser l'expression suivante : "@+id/string_name", où "+" signifie l'ajouter dans la classe interne nommée id dans R.java Un enregistrement. Par exemple : "@+id/button" signifie ajouter une constante nommée bouton à l'identifiant de classe interne statique dans le fichier R.java. Cette constante est l'identifiant de la ressource. Si l’identifiant de classe interne statique n’existe pas, il sera généré en premier.
Tutoriels vidéo associés recommandés : Tutoriel vidéo Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!