Un layout define la arquitectura de la UI de una Activity, donde se definen todos los elementos que aparecerán en ella.
En Android se pueden crear estos elementos dinámicamente o con ficheros XML. Cuando hay elementos que no se conocen en tiempo de compilación, hay que crearlos dinámicamente (View, ViewGroup). Si la aplicación sabe a priori todos los elementos que va a tener, normalmente se utilizan los ficheros XML.
- Permiten una mejor separación de la presentación y el código que controla el comportamiento.
- Se crean en el directorio res/layout.
- Cada fichero debe contener un solo elemento root, siendo éste un objeto View o ViewGroup:
- Los atributos de los elementos XML describen su apariencia y/o comportamiento.
- Podemos crear nuestros propios elementos creando subclases de android.view.View.
- El fichero R.java que se crea en gen/, permite acceder a los elementos de estos ficheros desde código Java.
- Si queremos que un elemento sea accesible desde Java, tenemos que asignarle un identificador:
* android:id="@+id/my_button" : debe crearse el elemento my_button y añadirse a R.java
* android:id="@id/my_button" : hace referencia a un elemento ya existente en R.java
* android:id="@android:id/empty" : hace referencia al id de un recurso propio de Android.R en vez del fichero local R.java.
¿Qué ocurre cuando compilamos la aplicación?
Cada XML se convierte en una View que debe ser cargada desde el método Activity.onCreate() con setContentView(). Para acceder a sus elementos, utilizamos el método findViewById() y el identificador del elemento (R.id.nombre).
EJEMPLO: Imaginemos que hemos creado un layout llamado res/layout/main.xml, con el siguiente botón:
Al compilar la aplicación, desde Java tendremos acceso a él de la siguiente manera:
En siguientes posts aprenderemos más elementos que puede tener un Layout.
Referencia: http://developer.android.com/guide/topics/ui/declaring-layout.html
En Android se pueden crear estos elementos dinámicamente o con ficheros XML. Cuando hay elementos que no se conocen en tiempo de compilación, hay que crearlos dinámicamente (View, ViewGroup). Si la aplicación sabe a priori todos los elementos que va a tener, normalmente se utilizan los ficheros XML.
¿Qué características tienen estos ficheros XML?
- Contienen los elementos y contenedores necesarios para formar una vista.- Permiten una mejor separación de la presentación y el código que controla el comportamiento.
- Se crean en el directorio res/layout.
- Cada fichero debe contener un solo elemento root, siendo éste un objeto View o ViewGroup:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
- Los atributos de los elementos XML describen su apariencia y/o comportamiento.
- Podemos crear nuestros propios elementos creando subclases de android.view.View.
- El fichero R.java que se crea en gen/, permite acceder a los elementos de estos ficheros desde código Java.
- Si queremos que un elemento sea accesible desde Java, tenemos que asignarle un identificador:
* android:id="@+id/my_button" : debe crearse el elemento my_button y añadirse a R.java
* android:id="@id/my_button" : hace referencia a un elemento ya existente en R.java
* android:id="@android:id/empty" : hace referencia al id de un recurso propio de Android.R en vez del fichero local R.java.
¿Qué ocurre cuando compilamos la aplicación?
Cada XML se convierte en una View que debe ser cargada desde el método Activity.onCreate() con setContentView(). Para acceder a sus elementos, utilizamos el método findViewById() y el identificador del elemento (R.id.nombre).
EJEMPLO: Imaginemos que hemos creado un layout llamado res/layout/main.xml, con el siguiente botón:
<Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/>
Al compilar la aplicación, desde Java tendremos acceso a él de la siguiente manera:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Fichero layout main.xml Button btn=(Button) findViewById(R.id.my_button); }
En siguientes posts aprenderemos más elementos que puede tener un Layout.
Referencia: http://developer.android.com/guide/topics/ui/declaring-layout.html
Comentarios
Publicar un comentario