Qual è la differenza tra @id e @ + id?

Ho appena iniziato a utilizzare Android e ho completato circa 5 file di layout. Tuttavia, mi sono appena reso conto che ho usato id @id e @ + in modo intercambiabile, ma non sono sicuro di quale sia la differenza esatta tra i due.

Devi usare @+id quando stai definendo il tuo Id per una vista.

Esattamente da documenti :

Il simbolo at (@) all’inizio della stringa indica che il parser XML deve analizzare ed espandere il resto della stringa ID e identificarlo come risorsa ID. Il simbolo più (+) indica che si tratta di un nuovo nome di risorsa che deve essere creato e aggiunto alle nostre risorse (nel file R.java). Esistono numerose altre risorse ID offerte dal framework Android. Quando si fa riferimento a un ID risorsa Android, non è necessario il simbolo più, ma è necessario aggiungere lo spazio dei nomi del pacchetto Android.

E ora aggiungo per voi un esempio pratico:

   

Quindi qui, hai creato due IDs , avvia e controlla. Quindi, nella tua applicazione sei in grado di collegarti a loro con findViewById(R.id.start) .

E questo android:layout_below="@id/start" riferisce a id.start esistente e significa che il tuo Button con controllo ID sarà posizionato sotto Button con id start .

A volte devi usare + segno. Ad esempio, quando usi e il file incluso appare così:

 < ?xml version="1.0" encoding="utf-8"?>  

Se non aggiungi + in "@+id/view_pager" otterrai un errore durante la creazione del progetto:

 Error:(9, 24) No resource found that matches the given name (at 'layout_anchor' with value '@id/view_pager'). 

Mi è successo nel progetto con le biblioteche.

Android: id = “@ + id / my_button”

+ id Plus can dice a android di aggiungere o creare un nuovo id in Risorse.

Android: layout_below = “@ id / my_button”

aiuta solo a riferire l’id già generato ..

Per accedere a un widget (o componente) in Java o renderne dipendenti gli altri, abbiamo bisogno di un valore unico per rappresentarlo. Questo valore unico è fornito da Android: attributo id che essenzialmente aggiunge id fornito come suffisso a @ + id / al file di risorse id per gli altri a interrogare. Un id per Toolbar può essere definito in questo modo,

 android:id=”@+id/toolbar 

Il seguente id può ora essere rintracciato da findViewById (…) che lo cerca nel file res per id, o semplicemente nella directory R.id e restituisce il tipo di View in questione. L’altro, @id, si comporta come findViewById (…) – cerca il componente dall’ID fornito ma è riservato solo ai layout. L’uso più generale è quello di posizionare un componente relativo al componente che restituisce.

 android:layout_below=”@id/toolbar”