lunes, 18 de abril de 2016

LLamar a una Activity desde otra en Android

En este artículo vamos a ver cómo lanzar o ejecutar una segunda activity desde la principal, para ello he creado un proyecto llamado Activities similar a como lo hago en el videotutorial de hola mundo en android en el que creo una empty Activity, de esta forma nos añade menos código por defecto.

Androi logo dev
En resumen, lo que necesitamos en un objeto Intent, los Intents se utilizan para solicitar a un componente (Activities, Servicios, Content providers, broadcast receivers) una acción.

 Intent intent = new Intent(this, Second_Activity.class);
 startActivity(intent);

En el caso de querer pasar algún parámetro o dato a la segunda actividad:

Intent intent = new Intent(this, Second_Activity.class);
intent.putExtra("web", "codigoalonso.net");
startActivity(intent);

y para recibirlo:

String texto = getIntent().getExtras().getString("web");

Veamos un ejemplo un poco más en detalle:

sábado, 16 de abril de 2016

Expresiones Lambda e Interface Funcionales en Java 8

Una expresión lambda es un bloque de código con una lista de parámetros y un cuerpo separados mediante el operador lambda -> y que representa una instancia a un interface funcional (que explicaré a continuación). Los objetos son la base de Java y no podemos tener una función sin un objeto, por lo que Java solo proporciona soporte para el uso de estas expresiones con los interfaces funcionales.


Antes de empezar y como toma de contacto veamos algunos ejemplos para ver cómo es la sintaxis de una expresión Lambda:
Recibe dos parámetros y devuelve la suma:
(int x, int y) -> { return x+ y ;};

Es posible omitir el tipo de parámetros que recibe, ya que el compilador infiere el tipo, (cuando no ponemos el tipo de parámetro tiene que ser en todos o en ninguno, sino dará un error.)
( x, y) -> { return x+ y ;};

Podemos abreviar aun más nuestra expresión lambda eliminando la palabra clave return, ya que únicamente devolvemos un valor, en este caso debemos eliminar las llaves, ya que no encierran un bloque de código con declaraciones, asignaciones, etc y opcionalmente podemos sustituirlas por paréntesis:
(x,y)->(x+y);

(x,y)->x+y;

domingo, 10 de abril de 2016

Tutorial SQLite en Android - Ejemplo CRUD

En este tutorial vamos a ver cómo crear una base de datos en Android, además analizaremos que clases y métodos necesitamos, para que sirven y cómo utilizarlos. El ejemplo consistirá en una tabla llamada Clientes y dividiré el articulo en dos partes, este que es el de la creación y el segundo en el que realizaremos todas las operaciones CRUD (Create, Read, Update and Delete).

La tabla que vamos a crear es la siguiente:

tabla sqlite android

Con los campos:

  • _id  INTEGER PRIMARY KEY AUTOINCREMENT
  • nombre TEXT NOT NULL
  • telefono TEXT
  • email TEXT


La sentencia PRIMARY KEY AUTOINCREMENT indica que además de ser la clave primaria de la tabla se va a incrementar automáticamente cada vez que añadamos un nuevo cliente. Por otro lado NOT NULL en el nombre indica que este campo no puede estar vacío. Es SQL básico.

Como los nombres de los campos y otros Strings los vamos a utilizar bastante voy a crear una clase llamada ConstansDB que además incluirá la sentencia SQL de creación de la tabla:

miércoles, 2 de marzo de 2016

Qué es un método varargs en Java y cómo utilizarlo

Un método varargs es aquel que recibe un número variable de argumentos. Fue introducido en Java 5 y es aplicable también a constructores. Es conocido también como método de argumentos variables. Se caracteriza por utilizar 3 puntos o puntos suspensivos en la declaración de los argumentos.



Un ejemplo de uso que puedes encontrar es en la clase Asynctask de Android, al sobrescribir los métodos doInBackgroud y onProgressUpdate, pero en este artículo voy a utilizar un ejemplo más sencillo.

Vamos a suponer que tenemos una función que devuelve el mayor de dos números, tal que:

domingo, 7 de febrero de 2016

Charla de Java 8 y Patrones de diseño

Aquí os enlazo una charla bastante interesante sobre Java, de Alonso Torres @alotor en el Codemotion de Madrid del 2015. Aunque en 40 minutos no se ha podido extender mucho, hace una buena aproximación a la utilización de las novedades que incluye Java 8 y patrones de diseño relacionados.