Ir al contenido principal

Android: Elementos básicos

En este post vamos a ver cómo crear etiquetas, campos de texto y botones en Android, tanto en XML como dinámicamente con Java.

ETIQUETAS
Una etiqueta en Android es un TextView. Las etiquetas son textos que no pueden ser modificados directamente por el usuario.

¿Cómo crear una etiqueta con XML?
<TextView android:id="@+id/textview"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="Hola mundo"/>

¿Cómo crear una etiqueta dinamicamente?
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   TextView tv = new TextView(this);
   tv.setText("Hola mundo");
   setContentView(tv);
}

CAMPOS DE TEXTO
Un campo de texto en Android es un EditText, que es una subclase de TextView.

¿Cómo crear un campo con XML?
<EditText android:id="@+id/entry"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/label"
   android:singleLine="false"/>

Si el atributo singleLine está a false, el usuario podrá introducir varias líneas en ese campo de texto.

¿Cómo crear un campo dinamicamente?
EditText et = new EditText(this);

BOTONES
Un botón en Android es un Button, que es una subclase de TextView.

¿Cómo crear un botón con XML?
<Button android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/my_button_text"/>

¿Cómo crear un botón dinamicamente?
Button b = new Button(this);
b.setText("My button");

 A partir de la versión 1.6 de Android, podemos definir la acción que va a realizar un botón desde el fichero XML:
<Button android:onClick="miAccion"... />

Así, hacemos que la Activity no tenga que implementar la interface View.OnClickListener. Sólo tiene que definir un método público que devuelva void, con una View como argumento que será la referencia al botón que se ha clickeado.
public void miAccion(View view) {
     // Acciones
}

Referencias:

http://developer.android.com/reference/android/widget/EditText.html
http://developer.android.com/reference/android/widget/Button.html


Comentarios

Entradas populares de este blog

Leer un fichero properties con java.util.Properties

Los ficheros .properties son simples ficheros de texto que se suelen utilizar para guardar parámetros de configuración, en forma de pares clave-valor. Ejemplo de fichero: configuration.properties #User parameters user.name=Ana user.language=spanish Si estamos usando Java, podemos utilizar la clase java.util.Properties para leer los parámetros de este fichero: private static final String USER_NAME = "user.name"; private static final String USER_LANGUAGE = "user.language"; public void showProperties() throws Exception { Properties p = new Properties(); InputStream is = App.class.getResourceAsStream("/configuration.properties"); p.load(is); is.close(); String userName = p.getProperty(USER_NAME); String userCountry = p.getProperty(USER_LANGUAGE); System.out.println("userName: "+userName); System.out.println("userLanguage: "+userCountry); } Después de ejecutar este método, obtendríamos la siguiente salida: ...

JSF 2.0: Managed Beans (III)

Anteriormente ya hemos visto que cuando se declara un bean, tenemos que darle un scope: application, session, view, request, none. Un scope es un mapeo entre nombres y objetos que se almacena durante un determinado periodo de tiempo. En este post vamos a explicar cada uno de ellos. Si declaramos el bean desde el fichero faces-config.xml, indicamos el scope en <managed-bean-scope> y si queremos hacerlo con anotaciones, utilizaremos @{Application,Session,View,Request,None}Scoped Application Con este scope, se guarda la información durante toda la vida de la aplicación web, independientemente de todas las peticiones y sesiones que se realicen. Este bean se instancia con la primera petición a la aplicación y desaparece cuando la aplicación web se elimina del servidor. Si queremos que el bean se instancie antes de que se muestre la primera página de la aplicación, usamos la propiedad eager a true. @ManagedBean(eager=true) ó <managed-bean eager="true"> Session...

JSF 2.0: Message bundles

Los message bundles son ficheros .properties que guardan mensajes del tipo clave=valor. Si centralizamos todos los mensajes de nuestra aplicación en estos ficheros, es más fácil poder localizarlos si queremos realizar algún cambio y también nos ayuda para la internacionalización de la aplicación. Ejemplo: messages.properties (en src/java/com/examples) con dos mensajes name=Tu nombre: age=Tu edad: ¿Cómo los declaramos? 1) En cada página JSF donde lo necesitemos <f:loadBundle basename="com.examples.messages" var="msgs"/> 2) De manera global en faces-config.xml <application>      <resource-bundle>           <base-name>com.examples.messages</base-name>           <var>msg</var>      </resource-bundle> </application> Esta opción es más eficiente ya que sólo crea el bundle una v...