2017-09-12 2 views
-1

Selon this fil je dois utiliser @+id/ pour la première fois de faire créer des ressources.Android: « @ + id/» et « @ + id/»

Mais si j'oublie que cette ressource a déjà été créé et créer à nouveau avec @+id/? J'ai quelques commentaires et mis nextFocusDown pour l'élément qui est toujours pas déclaré.

<EditText 
... 
android:nextFocusDown="@+id/myinput2"/> 

200 lignes ci-dessous je crée cet élément avec @+id parce que j'ai oublié qu'il a déjà déclaré.

<EditText 
... 
android:id="@+id/myinput2"/> 

Cela fonctionne comme ceci mais peut-il causer un problème?

Répondre

1

Quelques définitions rapides:

  • @+id/foo signifie « utiliser l'identifiant foo et créer si elle n'existe pas »
  • @id/foo signifie « utiliser l'identifiant foo » (qui sera une erreur si l'id foo n'existe pas)

Auparavant, il y avait des raisons de préférer @id sur @+id (le système pourrait vous dire si vous avez essayé de faire référence à une vue via un identifiant qui n'existait pas), mais maintenant le système est assez intelligent que l'écriture même android:layout_below="@+id/idthatdoesntexistanywhere" sera marqué comme une erreur:

enter image description here

Il suffit donc de toujours utiliser @+id.

1

It works like this but can it cause an issue?

Non, il ne peut pas. Toujours utiliser @+id/. A l'heure actuelle, l'environnement de construction Android est enought intelligent pour comprendre.

0

Si vous mettez deux éléments avec le même id dans le même fichier layout, cela génère une erreur IDE (soulignement rouge) et vous ne pourrez pas compiler.