Le risorse id possono riferirsi a un elemento più avanti nel file?Le risorse ID Android possono essere inoltrate?
Qui ho due campi, uno per il nome utente e un altro per la password. Creo una nuova risorsa ID (con la sintassi @+id/
) per il campo della password, ma il campo del nome utente non può trovarlo nel campo android:nextFocusDown
. Ho omesso altri campi dal layout xml, perché non sono rilevanti.
Come avrei dovuto dichiarare gli ID in questo caso?
<EditText
android:id="@+id/login_username"
android:nextFocusDown="@id/login_password" />
<EditText
android:id="@+id/login_password"
android:nextFocusUp="@id/login_username"
android:nextFocusDown="@id/login_submit" />
Costruire con Gradle, sto ricevendo un errore che assomiglia a questo: Error:(41, 32) No resource found that matches the given name (at 'nextFocusDown' with value '@id/login_password').
non ottengo un errore per android:nextFocusUp="@id/login_username"
campo, che mi porta a credere devi dichiarare l'id prima di utilizzare esso.
Ho anche ricevuto errori di compilazione nel mio codice, perché non viene generato il file R.java
, molto probabilmente perché le risorse da esso costruite non vengono create.
Con tutti i fantastici strumenti di creazione in Android, sono sorpreso che questo sia un problema. È un problema noto o un comportamento desiderato?
Il compilatore di risorse non guarda avanti, semplicemente @ + id in primo luogo che utilizza tale id, anche se non è un campo "id" – zapl