Blog de Miguel Díaz » Android http://www.blogdemigueldiaz.com Blog sobre Informática, programación y diseño Web Sun, 19 Aug 2012 18:04:09 +0000 es-ES hourly 1 http://wordpress.org/?v=3.4.1 Programación en Android para torpes (IV) – Asignar eventos a elementos http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iv-asignar-eventos-a-elementos/?utm_source=rss&utm_medium=rss&utm_campaign=programacion-en-android-para-torpes-iv-asignar-eventos-a-elementos http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iv-asignar-eventos-a-elementos/#comments Sun, 19 Aug 2012 18:04:09 +0000 Miguel Díaz http://www.blogdemigueldiaz.com/?p=1903 Continuar leyendo ]]>

Hasta ahora hemos visto como ejecutar acciones durante la carga de el Activity o ventana principal de nuestra aplicación, pero obviamente un programa precisa de una interacción con el usuario, el usuario debe poder pulsar en algunos lugares, introducir texto y realizar acciones sobre la interfaz del programa, para ello Android nos permite asignar eventos a los diferentes elementos de nuestro programa.

Hoy vamos a ver el elemento mas sencillo de todos, el evento OnClick, si ya habéis programado alguna vez en lenguajes como JavaScript o VisualBasic os sonará, es el evento que se produce cuando un elemento es pulsado una vez y nos servirá como base para familiarizarnos con el resto.

Para nuestro primer ejemplo debemos crear un nuevo proyecto en cuyo activity incluiremos un botón llamado btPrincipal y un TextView con id tvPrincipal y con un texto en blanco. En lo que va a consistir el ejemplo es en escribir “Hola mundo” dentro de tvPrincipal en el momento es pulsado el botón.

Asignar el evento OnClick a un botón en Android.

MainActivity.java

public class MainActivity extends Activity implements OnClickListener {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button boton = (Button) findViewById(R.id.btPrincipal); //Definimos el boton
        boton.setOnClickListener(this); //Le asignamos el evento onclick
    }
	public void onClick(View control_pulsado) {
		TextView campo_texto = (TextView)findViewById(R.id.tvPrincipal); //Definimos el campo de texto
		campo_texto.setText("Hola mundo"); //Cambiamos su contenido
	}
 }

Como vemos en la primera línea implementamos el metodo OnClickListener, si quisieramos usar otro evento, por ejemplo el OnTouch lo añadiriamos también con OnTouchListener, etc.

En la línea 9 asignamos el evento OnClick al boton, desde este momento se ejecutará la función onClick cada vez que este sea pulsado. La razón por la que pasamos el argumento this la veremos mas adelante.

A continuación en la función onClick cambiamos el texto como vimos en la tercera entrega del curso.

La razón por la que se pasa el argumento this es simple, imagina que tenemos dos botones, el btPrincipal queremos que cambie el texto a “Hola mundo” y el btSecundario queremos que ponga “Hasta luego mundo”, a ambos le asignamos el evento onClickListener, por lo cual la función onClick se va a ejecutar se pulse el botón que se pulse, por lo que es la propia función onClick la que debe averiguar por quién ha sido llamada, al incluir this, podemos diferenciar el botón con un simple condicional

	public void onClick(View control_pulsado) {
		TextView campo_texto = (TextView)findViewById(R.id.tvPrincipal); //Definimos el campo de texto
		if(control_pulsado.getId() == R.id.btPrincipal){ //Si se ha pulsado btPrincipal
			campo_texto.setText("Hola mundo"); //Escribimos Hola Mundo
		}else if(control_pulsado.getId() == R.id.btSecundario){
			campo_texto.setText("Hasta luego mundo"); //Escribimos Hasta luego mundo
		}
	}

En la próxima entrega veremos como crear nuevas ventanas o activitys en Android y las diferencias con respecto a las existentes en otros sistemas operativos.

]]>
http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iv-asignar-eventos-a-elementos/feed/ 0
Programación en Android para torpes (III) – Modificando los elementos de un Activity en tiempo de ejecución. http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iii-modificando-los-elementos-de-un-activity-en-tiempo-de-ejecucion/?utm_source=rss&utm_medium=rss&utm_campaign=programacion-en-android-para-torpes-iii-modificando-los-elementos-de-un-activity-en-tiempo-de-ejecucion http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iii-modificando-los-elementos-de-un-activity-en-tiempo-de-ejecucion/#comments Wed, 15 Aug 2012 18:52:59 +0000 Miguel Díaz http://www.blogdemigueldiaz.com/?p=1805 Continuar leyendo ]]> Y en esta entrega empezamos con los códigos, nada complicado pero necesario especialmente si vienes de lenguajes sencillos como VB.Net o C#. Como se ha dicho en las anteriores entregas es necesario conocer algún lenguaje de programación orientado a objetos, preferiblemente Java pues es el usado en Android.

Además si no has leído las entregas anteriores este es el momento:

Hoy veremos como modificar los diferentes elementos gráficos (contenedores de imagen, etiquetas de texto, botones, etc) en tiempo de ejecución. Si vienes de otros entornos como .net, verás que es muy similar pero con algunas variaciones, por ejemplo a los elementos de un Activity se les llama View en lugar de elementos.

En nuestro primer ejemplo tendremos un Activity que contendrá un TextView llamado “caja_de_texto”, por lo que nuestro xml será algo así:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
        android:id="@+id/caja_de_texto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />
</RelativeLayout>

Como veis es simple, un textview con el texto “Hello World”. Es importante que veais la línea que dice android:id la cual define el nombre o id del view. Sin ello no podremos realizar cambios a posteriori.
Ahora vamos a explicar las partes de las que costa MainActivity.java

package com.example.ejemplocursoiii;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

Básicamente primero importa algunas de las API de android, posteriormente nos encontramos la clase referente a la actividad, que consta de dos funciones principales, onCreate y onCreateoptionsMenu.

La opción onCreate es ejecutada cuando se crea la actividad, es similar al OnLoad de .Net. Por otro lado onCreateOptionsmenu se ejecuta cuando se pulsa el botón de menús.

En nuestro caso vamos a modificar el textview al cargar la aplicación, de forma que nos diga la hora que es, para ello nos pondremos dentro de la funcion onCreate y la dejaremos de esta forma:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Definimos el objeto texto a partir de el elemento con id caja_de_texto
        TextView texto = (TextView)findViewById(R.id.caja_de_texto);
        Date fecha = new java.util.Date(); //manejador de fechas
        //Cambiamos el texto
        texto.setText(fecha.getHours()+":"+fecha.getMinutes());
    }

Creo que el ejemplo es bastante claro, en la sexta línea crearemos el objeto “texto” este nos servirá para manejar el view, la razón por la que se usa el modificador (TextView) es que la función findViewbyId nos devuelve un elemento de tipo View y no TextView, añadiendo este modificador lo convertiremos al adecuado.

Posteriormente, para cambiar el texto del elemento usaremos la función .setText(string) en la cual figura la hora del sistema aunque podemos poner cualquier otro valor de tipo String.

En la siguiente entrega veremos como llamar a los diferentes eventos onClick, onTouch, etc para poder ejecutar código en momentos diferentes al onCreate y onCreateoptionsMenu.

]]>
http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-iii-modificando-los-elementos-de-un-activity-en-tiempo-de-ejecucion/feed/ 0
Programación en Android para torpes (II) – Hola mundo y estructura de proyectos http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-ii-hola-mundo-y-estructura-de-proyectos/?utm_source=rss&utm_medium=rss&utm_campaign=programacion-en-android-para-torpes-ii-hola-mundo-y-estructura-de-proyectos http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-ii-hola-mundo-y-estructura-de-proyectos/#comments Fri, 10 Aug 2012 16:34:13 +0000 Miguel Díaz http://www.blogdemigueldiaz.com/?p=1773 Continuar leyendo ]]> Esta es la segunda entrega del curso de programación en Android, este pretende ser un curso realmente sencillo para empezar a desarrollar aplicaciones en Android, pero es imprescindible tener nociones de programación orientada a objetos. Durante la entrega de hoy crearemos nuestro primer proyecto del tipo Hola Mundo, veremos de qué partes está compuesto y lo ejecutaremos en la máquina virtual que creamos en la primera entrega del curso de programación en Android.

Crear una aplicación para Android en eclipse

Esto es sencillo, abrimos Eclipse y nos vamos a File>New Project, se nos abrirá una nueva ventana donde seleccionaremos el tipo de proyecto, en este caso una aplicación para Android.

Pulsamos next y le damos un nombre al programa, en nuestro caso será “PrimeraAplicacion”, el resto de campos se rellenan automáticamente aunque podemos modificarlos, donde dice Build SDK elegimos la versión de Android sobre la que funcionará, en nuestro caso la 2.2, ya que es la tenemos instalada en nuestro emulador, pulsamos Next y nos dejará personalizar el icono, demomento lo dejarmos como está. La siguiente ventana nos permite elegir un tipo de actividad. Las actividades podríamos decir que son el equivalente a los Forms o ventanas de .Net, elegiremos uno vació (BankActivity).

La siguiente ventana nos permite seleccionar opciones relacionadas con la actividad, como su nombre, etc. Lo dejaremos todo con las opciones por defecto y pulsamos Finish.

Estructura de un programa para Android

Ahora vamos a ver de que partes se compone nuestro proyecto y para que valen cada una, para ello abriremos el “Project Explorer”.

En primer lugar vemos la carpeta res, en ella se guardan recursos de la aplicación, nos centraremos en los mas importantes los que hay en la subcarpeta layout y en la subcarpeta values.

En la carpeta layout veremos un archivo xml, este XML es básicamente el diseño del formulario (en adelante activity). Cada vez que creemos un formulario deberemos crear un xml aquí. Eclipse permite modificar el código fuente de estos xml a mano o bien con un editor visual, para ello hacemos doble clic, se nos abrirá una nueva ventana en la que podemos elegir la forma de edición: Graphical Layout para una edición visual o activity_main.xml para editarlo a mano.

Dentro de la carpeta res encontraremos, además, la subcarpeta values con un archivo llamado strings.xml, este almacenará cadenas de texto accesibles desde todo el programa, podemos poner por ejemplo el nombre de los botones, dialogos, etc. Estas cadenas también podrian escribirse en tiempo de ejecución pero se recomienda hacerlo mediante ficheros xml para una edición mas sencilla, soporte a idiomas, etc.

Ahora iremos a la carpeta src, esta contiene los ficheros .java, es decir los ficheros con el código fuente del programa. Cada Activity tiene asociado uno de ellos, por tanto ya tendremos uno creado, si lo abrimos veremos que existe una clase, dentro de ella las funciones onCreate que se ejecutará cuando se crea el Activity, similar al onLoad de .Net y otra llamada onCreateMenu que se ejecuta cada vez que se pulsa el botón de menú. En el próximo numero modificaremos el código, de momento vamos a dejarlo como está.

 

 

Nuestro primer Hola Mundo en Android.

Es simple, para ello abriremos el archivo activity_main.xml, si lo abrimos veremos que contiene un elemento TextView, si habéis programado para Windows Forms, este es equivalente a los labels, para editar su texto hacemos clic con el botón derecho y seleccionamos edit text, si os fijáis hace referencia a @string/hello_world en lugar de haber puesto directamente el texto ahí. Tenemos dos opciones o bien escribimos directamente el texto (no recomendado) o bien vamos al archivo values/strings.xml y editamos la variable hello_word para poner “HOLA MUNDO”.

Una vez hecho ejecutaremos el proyecto desplegando la flecha verde que hay en la barra de tareas y pulsando “Mi Aplicacion”, esto ejecutará el emulador, instalará la aplicación y la ejecutará

En la próxima entrega veremos nuestras primeras líneas de código, con las que accederemos y modificaremos un TextView en tiempo de ejecución.

]]>
http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-ii-hola-mundo-y-estructura-de-proyectos/feed/ 0
Programación en Android para torpes (I) – Configurar el SDK http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-i-configurar-el-sdk/?utm_source=rss&utm_medium=rss&utm_campaign=programacion-en-android-para-torpes-i-configurar-el-sdk http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-i-configurar-el-sdk/#comments Wed, 08 Aug 2012 15:15:14 +0000 Miguel Díaz http://www.blogdemigueldiaz.com/?p=1745 Continuar leyendo ]]> Hace tiempo que quería empezar a programar para Android, pero entre que tengo una relación amor/odio con Java y que me daba una pereza infinita ponerme a configurar el SDK no terminaba de ponerme con ello, pero bueno, llevo ya unos meses picando código y creo que es el momento de empezar un curso de programación para Android.

En esta primera entrega aprenderemos a configurar el SDK de android con eclipse, por lo que no ahondaremos en aspectos puros de programación. En el siguiente crearemos nuestro primer proyecto y veremos de que partes se compone.

Antes de empezar, debemos tener claro que es imprescindible conocer Java o algún lenguaje de programación orientada a objetos similar como C++

Configuración del SDK de Android

El SDK nos dotará de las API y herramientas como un emulador de Android. El primer paso es descargarlo, e instalarlo como una aplicación mas.

Una vez instalado vamos a configurarlo, para ello abriremos el programa y seleccionaremos las versiones de android que deseamos instalar. Yo os recomiendo usar la 2.2 y 2.1 ya que son compatibles con la mayoría de dispositivos Android. Una vez seleccionados hacemos clic  en Install Packages, aceptamos la licencia y comenzará la descarga e instalación de las diferentes imágenes de Android

Configuración de eclipse

Una vez ha terminado deberemos descargar el IDE Eclipse para Java, este programa es portable por lo que no precisa de ninguna instalación, simplemente ejecutando el archivo eclipse.exe se abrirá el programa. Nos preguntará la carpeta donde queremos guardar nuestro espacio de trabajo, en mi caso será C:\Proyectos\Eclipse.

Cuando se haya abierto el editor, nos vamos a Help>Install new software y pulsamos el botón Add. De nombre le pondremos Android y en location pondremos esta url

  • https://dl-ssl.google.com/android/eclipse/

Nos aparecerá un listado de plugins para instalar, seleccionamos “Developers Tools” y pulsamos Next, aceptamos la licencia y se instalará el plugin.

Una vez instalado se reiniciará eclipse, ahora vamos a crear nuestro máquina virtual con Android para ejecutar nuestras aplicaciones, para ello vamos a Inicio>Todos los programas>Android SDK Tools>AVD manager, en la nueva ventana pulsamos New.

En el campo Name escribimos el nombre del dispositivo, por ejemplo “TelefonoPruebas”, en target elegiremos la versión de Android yo voy a poner la 2.2, pero podéis elegir cualquier otra y por ultimo elegiremos un tamaño reservado para una SD virtual, una vez hecho pulsais CREATE AVD.

Si queréis iniciarla solo tenéis que seleccionarla y pulsar Start, el proceso de arranque toma unos cuantos minutos.

En el próximo capitulo crearemos un nuevo proyecto “Hola mundo” y explicaremos las partes de las que se compone un programa para android.

]]> http://www.blogdemigueldiaz.com/2012/08/programacion-en-android-para-torpes-i-configurar-el-sdk/feed/ 0