54 votes

Quel est le "point" pour lors de l'enregistrement d'une Activité

Je suis un peu un noob en programmation pour le système d'exploitation Android. J'ai remarqué que dans les livres que j'ai lu que les auteurs ont placé un "point" devant le nom de l'activité lors de l'enregistrement de leurs activités dans le manifeste. J'ai regardé autour de l'Android developer site et je ne peux pas comprendre pourquoi nous avons besoin de la "dot". Le "point" en réalité serveur un but? Ai-je besoin? J'ai inclus un exemple ci-dessous. Notez que le "point" avant "NewActivity":

<activity android:name=".NewActivity"></activity>

42voto

Cristian Points 92147

Comme vous l'avez remarqué le point n'est pas nécessaire, mais cela signifie en gros: l'activité de la classe vit dans le même package de l'application. Donc, si votre package d'application est: com.my.package alors:

  • .YourActivity signifie que votre classe est à l'intérieur d' com.my.package.
  • YourActivity signifie que votre classe est à l'intérieur d' com.my.package (le même que ci-dessus).
  • .activities.YourActivity signifie que votre classe est à l'intérieur d' com.my.package.activitites.
  • Vous pouvez même faire quelque chose comme: com.my.package.activities.YourActivity ce qui est utile lorsque vous voulez avoir différentes versions de votre application et utiliser Ant pour modifier les références à automatiquement le package.

29voto

Bert F Points 27237

http://developer.android.com/guide/topics/manifest/activity-element.html#nm

android:name
Le nom de la classe qui implémente l'activité, une sous-classe de l'Activité. La valeur de l'attribut doit être un nom de classe entièrement qualifié (par exemple, "com.exemple.projet.ExtracurricularActivity"). Cependant, comme une abréviation, si le premier caractère du nom est une période (par exemple, ".ExtracurricularActivity"), il est ajouté au nom de package spécifié dans l' <manifest>.

Donc, étant donné ApplicationManifest.xml:

<manifest 
    ...
    package="com.stackoverflow.android.geotask"
    ...>
    <application ...>
        <activity android:name=".view.TaskListListView" ...>
        ...
    </application>
</manifest> 

alors depuis android:name=".view.TaskListListView" a l'un des leaders de la période, de sorte qu'il est interprété en android:name="com.stackoverflow.android.geotask.view.TaskListListView".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X