2010-11-27 7 views
12

J'ai lu une grande partie de la documentation Android et je n'ai pas encore trouvé de déclaration indiquant le préfixe "@ + id". Je sais ce que "@string" et les variations de cela signifient, mais pas la variation avec le "+". En plus de me donner la réponse, pouvez-vous me montrer où cela est documenté dans les docs Android?Que signifie "@ + id"?

Répondre

39

Le signe plus indique simplement que l'ID doit être créé s'il n'existe pas.

Il est pratique courante d'utiliser @+id/foo lors de la définition d'une nouvelle vue dans une mise en page, puis utilisez @id/foo pour faire référence à la vue d'une autre partie de la mise en page (par exemple, dans une hiérarchie RelativeLayout) ou R.id.foo à référencer à partir du code.


MISE À JOUR: Docs sont ici: Declaring Layout - Attributes - ID

3

C'est la syntaxe pour relier un élément de mise en page XML Android à votre code Java. Donc, si je veux afficher du texte dans un TextView, je dois le faire.

Première étape - définir la mise en page

<TextView 
android:id="@+id/SaveResult" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="SaveResult" 
android:layout_x="16px" 
android:layout_y="190px" 
> 
</TextView> 

Ensuite, dans le code, j'utilise @ + id pour relier la mise en page à la variable. Considérez l'ID @ + comme une clé étrangère dans une base de données.

Maintenant, il est prêt à l'emploi. Quand je cède le texte, il utilise l'id @ + pour voir où le mettre, et aussi la couleur, la taille, etc ..

lblSaveResult.setText("This text is now on the screen"); 

Désolé, mais je ne sais pas où la documentation est pour cette ...

1

Le signe arobase (@) est requis lorsque vous faites référence à un objet ressource de XML. Il est suivi du type de ressource (id dans ce cas).

Le signe plus (+) avant le type de ressource est nécessaire uniquement lorsque vous définissez un ID de ressource pour la première fois. Lorsque vous compilez l'application, les outils SDK utilisent le nom d'ID pour créer un nouvel ID de ressource dans le fichier gen/R.java de votre projet qui fait référence à l'élément d'interface utilisateur. Avec l'ID de ressource déclaré une fois de cette manière, les autres références à l'ID n'ont pas besoin du signe plus. L'utilisation du signe plus est nécessaire uniquement lors de la spécification d'un nouvel ID de ressource et n'est pas nécessaire pour les ressources concrètes telles que les chaînes ou les mises en page.

0

Le signe plus indique que vous créez un nouvel ID qui n'existe pas. par exemple "@ + id/xyz". Si vous écrivez "@ id/xyz", cela indique que vous faites référence à la vue depuis une autre partie de la mise en page.