Dans AndroidStudio, lorsque je crée un projet à l'aide d'une activité vide, j'obtiens le morceau de code suivant dans le MainActivity.java
fichier:
package my.company.my_proj;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
où une classe cryptique nommée R
est utilisée. Quel est le but de ce cours R
?
android.R
?Qu'est-ce que R: Il n'y a rien de très mystérieux à propos de R. C'est juste une classe qui a de nombreuses sous-classes statiques, ouvrez-la en éclipse et jetez un œil (c'est sous gen /).
Chaque membre de cette classe est l'une des deux choses suivantes: 1) les classes finales statiques ou 2) les entiers finaux statiques qui sont uniques par rapport aux autres membres de leur classe.
Pourquoi est-ce si cryptique: Il est facile de se confondre car R est automatiquement généré par fourmi. C'est énigmatique parce que vous n'êtes pas censé le "toucher" manuellement (bien sûr, vous le pouvez, mais vos modifications seront automatiquement effacées lors de la régénération). C'est également cryptique car parfois éclipse importe automatiquement le fichier R standard des androïdes (comme indiqué dans les réponses ci-dessus)
Pourquoi est-ce toujours le premier qui ne peut pas être résolu: R suit exactement les règles des classes et des packages Java, il n'y a rien de spécial dans la façon dont R agit par rapport à l'importation. R sera automatiquement placé dans le package spécifié par l'entrée de package dans votre fichier manifeste
Pour voir à quel package appartient votre fichier R, ouvrez simplement le dossier gen / dans eclipse (vue packages). Vous verrez un package répertorié ici, il aura le nom que vous avez spécifié dans votre manifeste. Essayez de le supprimer, il reviendra si toutes vos ressources suivent les règles de dénomination correctes et que tous vos fichiers xml suivent les règles xml correctes et si la construction est activée automatiquement dans eclipse.
La clé pour comprendre le fichier R est de se rendre compte qu'il est dans le même package que les autres classes même s'il se trouve dans un répertoire différent de celui des autres fichiers appartenant à votre package "principal". Une fois que vous avez compris cela et compris la syntaxe et la dénomination des fichiers de ressources, le dépannage des problèmes avec R est facile.
la source
R est le nom de vos ressources. Toute ressource à laquelle vous accédez
R.$FOLDER.$RESOURCE
ou quelque chose de très similaire.S'il ne peut pas être résolu, assurez-vous que le chemin d'accès est correct et que la ressource référencée existe (sensible à la casse; inclure l'extension).
En outre, la partie déroutante (pour moi, en tout cas) est qu'il y a deux différents
R
. Si vous obtenez de nombreuses erreurs "Impossible de résoudre", essayez de voir ce que vous importez. Essayez de le modifier ou de le supprimer. Ou vous pouvez essayer de nettoyer votre projet (AVERTISSEMENT: cela rend parfois les choses pires qu'elles ne le sont déjà).la source
R
fichier. De temps en temps, il manque l'étape "régénérer" me laissant sans (ou avec un vide)R
etR
est programmé pour annuler automatiquement les changements faits à la main.Android R.java est un fichier généré automatiquement par AAPT (Android Asset Packaging Tool) qui contient des ID de ressources pour toutes les ressources du répertoire res /. Si vous créez un composant dans le fichier activity_main.xml, l'identifiant du composant correspondant est automatiquement créé dans ce fichier. Cet identifiant peut être utilisé dans le fichier source d'activité pour effectuer toute action sur le composant.
la source