Como utilizar formato HTML en textos

Objetivo:

Utilizar HTML para obtener textos formateados en nuestra aplicación Android.

Hay situaciones en las programando en Android, tenemos un texto HTML y deseamos incluirlo en nuestra aplicación, aprovechando el formato que tiene.

En esas situaciones, podemos llamar al paquete android.text.html, dejando que él actúe sobre nuestro texto, aplicando la vista indicadas en las etiquetas que le dan formato.

Vamos a crear una mini-aplicación para dar formato HTML al texto que se encuentra en un aviso (Alert). Para ello, debemos crear una aplicación desde el principio, saber como crear un AlertDialog (aunque en el enlace se muestra como hacerlo junto con XML y aquí lo crearemos con Java directamente), y finalmente llamar a la clase android.text.html.

Vemos una captura de la mini-aplicación:

TutorialAndroid - Ejemplo escribir en HTML

Y a continuación mostramos el texto comentado:

Código fuente Java:

[sourcecode language=”java”]
package com.htmlenalertas.tutorialandroid;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.text.Html;

public class HTMLenAlertActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder alertWithHTML=new AlertDialog.Builder(HTMLenAlertActivity.this);
alertWithHTML.setMessage(Html.fromHtml("<font color=#fff000> Escribo esto en HTML! "+"</font><br><strong>tutorialandroid.com</strong>"));
alertWithHTML.setPositiveButton("ok", null);
alertWithHTML.show();
}
}
[/sourcecode]

Descárgate el código aquí

Como dar estilo: color, sombras, tamaño a un texto Textview

Objetivo:

Dar formato (color, sombreado, tamaño) a un texto (Textview).

Es importante tener nuestros textos correctamente formateados, para ganar visualización en nuestra aplicación.

Se pueden realizar formatos tanto en Java como en XML, pero presentaremos el segundo caso, para continuar nuestra filosofía en la web de separar vista-controlador entre estos dos lenguajes.

A continuación se muestra la captura de pantalla de Cartelera de Cine, una aplicación Android disponible en Android Market. El nombre de la ciudad es un TextView formateado mediante el XML, que se muestra más abajo. Id variando los diferentes valores mostrados hasta alcanzar el nivel de sombras, color,etc deseado:

Captura_cartelera_de_cine

Código fuente XML:

[sourcecode language=”xml”]
<TextView android:id="@+id/cartelera_texto_ciudad"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="" android:textSize="30sp" android:textStyle="bold"
android:textColor="#000000" android:shadowColor="#8a6603"
android:shadowDx="3" android:shadowDy="2" android:shadowRadius="1.8"
/>
[/sourcecode]

Dicho código pertenece al texto en…Madrid

Como limitar texto en un EditText

Objetivo:

Limitar el número de caracteres que se puedan escribir en un EditText.

Cuando creamos formularios, hay ocasiones en que debemos limitar el número de caracteres que un usuario introduzca en un EditText.

Una forma simple de hacerlo es utilizando la propiedad maxLenght de dichos campos en el fichero XML:

Código fuente XML:

[sourcecode language=”xml”]
android:maxLength="10"
[/sourcecode]

Dicho código limita a 10 el número de caracteres que se pueden introducir.

Como poner texto por defecto para un EditText

Objetivo:

Colocar un texto por defecto en un EditText.

Cuando creamos formularios, debemos dar la máxima información para que el usuario que los rellena no tenga dudas.

Una forma de hacerlo es utilizando los hints de los EditText. Con ello conseguimos proporcionar una pista para rellenar el campo. Este texto por defecto en el EditText será borrado cuando pulsemos en el mismo y empecemos a escribir.

Vemos un ejemplo sacado de la aplicación Cartelera de Cine, (disponible en Android Market) en el cual debemos introducir la ciudad para saber toda la información de los cines y películas disponibles. Se observa que se usa el texto por defecto para dar un ejemplo de lo que se debería introducir en el EditText, y que dicho texto aparecerá con un color gris claro para diferenciarse del texto que posteriormente escriba el usuario:

Como poner texto por defecto en EditText (1)Como poner texto por defecto en EditText (2)

 

Para usar el texto por defecto, deberemos colocar la propiedad hint en el EditText del fichero XML:

Código fuente XML:

[sourcecode language=”xml”]
android:hint="Cordoba (por ejemplo)"
[/sourcecode]

Como mostrar teclado numérico solamente

Objetivo:

Mostrar únicamente números en el teclado virtual.

Hay situaciones en las que el teclado que deseamos mostrar no necesita letras (por ejemplo, en campos donde se debe introducir nuestra edad).

En esas situaciones, si sólo dejamos los números, éstos serán más grandes, pulsándose con más facilidad por el usuario de nuestra aplicación.

Vemos un ejemplo en la aplicación Málaga en un Clic, disponible en Market Android, en la cual debemos introducir un número de parada de autobús:

Como mostrar teclado virtual numérico solamente, ejemplo Málaga en un Clic

Hay varias forma de hacerlo. En el ejemplo de la imagen, se pueden escribir también símbolos (* # +…). Para obtener este teclado, deberemos colocar la siguiente propiedad en el EditText del fichero XML:

Código fuente XML:

[sourcecode language=”xml”]
android:inputType="numberDecimal"
[/sourcecode]

Si solamente deseamos ver números, entonces las propiedades del EditText serían:

Código fuente XML:
[sourcecode language=”xml”]
android:inputType="phone"
android:digits="1234567890"
[/sourcecode]