2009-06-19 8 views
6

Dal libro O'Reilly "Sviluppo di applicazioni Android" da Rick Rogers, John Lombardo, Zigurd Mednieks & Blake Meike, pagina 23:@ in AndroidManifest.xml il file

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 

Da pagina 44:

<application android:icon="@drawable/icon2"> 

Qual è il significato dello @ in ciascuno dei suddetti frammenti?

risposta

7

In questo caso:

android:layout_width="fill_parent" 

il valore per l'attributo, android:layout_width, è specificato direttamente all'interno delle virgolette, fill_parent. Nell'altro caso:

android:text="@string/hello" 

il valore dell'attributo, android:text="@string/hello", è specificato altrove. Questo è indicato dallo @ all'inizio della stringa. In questo esempio è @string/hello. Il valore è in una risorsa.

Dalla sezione "Valori delle risorse" in The AndroidManifest.xml File dal sito degli sviluppatori Android. Trovato dal link nella risposta allclaws.

valori risorse sono espressi nella seguente formato,

@ [pacchetto:] tipo: nome

dove il nome del pacchetto può essere omesso se la risorsa è nello stesso pacchetto come l'applicazione, tipo è un tipo di risorsa - come "stringa" o "disegnabile" - e il nome è il nome che identifica la risorsa specifica.

6

tendo a pensare ad esso come abbreviazione che ha a che fare con dove si trovano le risorse, in modo da:

In una configurazione normale, sarebbe qualcosa di simile:

@ drawable/icon =/PROJECT_ROOT/res/drawable/icon.png

@ string/ciao = /PROJECT_ROOT/res/values/strings.xml (un elemento chiamato "ciao")

Questo mi sembra guai in più, ma funziona davvero abbastanza bene. Inoltre facilita il supporto per l'internazionalizzazione e le diverse dimensioni dello schermo. Dichiarate semplicemente file di risorse aggiuntive per i diversi codici e layout di paese e Android sceglie la soluzione migliore per voi.

Questo documento su internationalization here potrebbe rendere più chiaro il motivo per cui hanno deciso di farlo in quel modo.

Problemi correlati