9
votes

Dot dirigeant dans Android: nom vraiment requis?

Duplicaté possible:

Quel est le "point" pour l'enregistrement d'une activité

Dans tous les exemples Android Exemples noms d'activités, de services, etc. Tout commence par un point: xxx

J'ai oublié de le faire dans tous les projets Android - mais ils travaillent Parfait.

Ma question: Est-ce que ce point de premier point est vraiment requis?

Edit: Voici un petit exemple d'instantané d'une de mes applications. Cette application fonctionne parfaite. Il n'utilise pas de noms qualifiés et il n'utilise pas de points: xxx


2 commentaires

J'ai remarqué qu'à utiliser l'ancien ADT / SDK, il n'a pas de point, mais le plus récent le faire automatiquement ... de ce que j'ai vu.


De l'expérience douloureuse, j'utilise toujours DOT, pas le nom de classe complet. Ceci après que j'avais des accidents dans une application sur certains téléphones avec certains niveaux d'API et non seulement l'API connexe, 2 désirs HTC, les deux 2.3. On s'est écrasé, on n'a pas! Je n'ai jamais trouvé de raison pour cela.


4 Réponses :


0
votes

C'est nécessaire. C'est une abréviation pour le nom du paquet. Android: Le nom est censé spécifier le nom de la classe complète. En mettant dans un point de premier plan, nous pouvons indiquer que le nom de la classe suivant se trouve dans le «paquet» déclaré ci-dessus dans le manifeste.


1 commentaires

Pourquoi toutes mes applications fonctionnent-elles? Dans aucune de mes applications, j'utilise des noms pleinement qualifiés et je n'utilise pas le point.



2
votes

Le point consiste à utiliser le chemin relatif de l'application donne nom_face_name . Vous pouvez remplacer .myactivité avec com.youractitenitypackage.myactivité


1 commentaires

Pourquoi toutes mes applications fonctionnent-elles? Dans aucune de mes applications, j'utilise des noms pleinement qualifiés et je n'utilise pas le point.



1
votes

oui, l'activité [Android: nom] devrait spécifier un package entièrement qualifié.class ou s'il commence par un point, puis il est annexé à la Application S. S.

Voir le doc


1 commentaires

Pourquoi toutes mes applications fonctionnent-elles? Dans aucune de mes applications, j'utilise des noms pleinement qualifiés et je n'utilise pas le point.



23
votes

ometter le point et non qualificatif que le nom du colis / de la classe fonctionnera si et uniquement si la classe spécifiée ne fait pas partie d'un sous-vue dans votre application.

Si votre nom de package d'application est com.example.myapp , et vous avez une classe d'activité com.example.myapp.myactivité :

  1. android: nom = "myactivité" fonctionnera.
  2. android: nom = ". myactivité" fonctionnera.
  3. android: nom = "com.example.myapp.myactivity" fonctionnera.

    Mais si vous avez le même package d'applications et une classe d'activité dans un sous-vue dans votre arborese source, tel que com.example.myapp.myactivités.myactivité Les choses changent.

    1. android: nom = ". myACtivities.myactivité" fonctionnera
    2. android: nom = "com.example.myapp.myactivités.myactivité" fonctionnera
    3. android: nom = "myactivity" ne fonctionnera pas
    4. android: nom = "myACtivities.myactivité" ne fonctionnera pas

      3 ne fonctionne pas car cela déduira que le nom de la classe que vous voulez dire est en réalité com.example.myapp.myactivité comme dans le premier exemple ci-dessus. Une classe avec ce nom ne sera pas trouvée et vous obtiendrez une erreur.

      4 ne fonctionne pas car il ressemble à un nom de classe entièrement qualifié, c'est-à-dire que le système l'interprétera pour signifier que myactivities.myactivité est le nom total qualifié lui-même, pas le vrai nom de com.example.myapp.myactivités.myactivité .

      Vous avez besoin du premier point ici pour clarifier que vous utilisez un chemin relatif, pas un chemin absolu. Si vous spécifiez simplement un nom de classe sans aucune information de package, le système déduit que la classe est à la racine de votre hiérarchie de votre package d'application.


0 commentaires