Primer Programa en Android .|.Tutorial.|.

Primer Programa en Android .|.Tutorial.|.

El dia de hoy vamos  a crear nuestro primer programa en android mediante un sencillo ejemplo en el que se ve el proceso de creacion de una app android, nuestro programa simple y sencillamente pasara informacion de una pantalla a otra. El ejemplo en si no es cosa del otro mundo pero ejemplifica el proceso de crear un nuevo proyecto, estructura de un proyecto android, agregar vistas y clases, registrar estas vistas en el manifest de android, pasar informacion de una vista a otra y mas.. asi que vamos ya al ejemplo-tutorial :yum:

Requerimientos

  • Entorno Android listo ( sdk, eclipse, adt, etc..)
  • De preferencia un dispositivo android con sus drivers instalados y listo para utilizar ( sino lo tienes vale el emulador de android pero sera algo lento :sob:)

Escenario

Como dijimos anteriormente te mostraremos un ejemplo para pasar informacion de una pantalla a otra, pasando por todo el proceso que involucra el desarrollo de esta sencilla app para android.

Lo que haremos sera crea una app que envie un mensaje de una pantalla a otra, sencilla pero te aseguro que si te lees todito el articulo aprenderas una fuerte base de android para comenzar a programar tus propias apps :yum:

Haremos algo como esto..

primer programa en android 10


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

primer programa en android 11

primer programa en android 11

Primer App en Android

Crear un nuevo proyecto

Vamos a eclipse, File -> New -> Android Application Project ->

 primer programa en android 1 primer programa en android 2 primer programa en android 3 primer programa en android 4

Como puedes ver hemos dejado desmarcada la opcion de Create Activity, esto es porque queremos nosotros agregar la actividad principal para aprender a hacerlo :yum:

Estructura del proyecto

Una vez cargado nuestro proyecto nos aparece la siguiente estructura en el explorador de paquetes (Sino lo ves ve a Window -> Show View -> Package Explorer )

primer programa en android 5

Entre todas las carpetas y archivos que se crearon por el momento los que nos interesa en este primer tutorial de android seran las siguientes carpetas y archivos

  • Carpeta src guardara todas las clases .java
  • Dentro de la carpeta res se guardaran todos los recursos de la app.
  • Dentro de las carpetas drawable se guardaran todas las imagenes de cada tipo de resolucion que existen para los dispositivos.
  • Carpeta layout guardara todas las vistas de nuestras pantallas mediante archivos XML.
  • values por el momento guardara las cadenas de texto que se utilizaran en nuestra app.
  • AndroidManifest.xml sera nuestro archivo de «configuracion» donde registraremos nuestras pantallas y permisos de la app.

Como agregar una nueva Pantalla

Si queremos agregar una nueva pantalla a nuestra app en android ( en nuestro caso la pantalla principal  ) tenemos que hacer siempre 3 cosas..

  1. Crear la Vista XML en la carpeta res/layout.
  2. Crear el codigo java para controlar esta vista en src/tupaquete.
  3. Registrar esta pantalla en el archivo AndroidManifest.xml.

El orden puede ser el que tu quieras pero te aconsejo que utilices este para que no tengas que registrar un pantalla que no has creado en el androidmanifest, o que tengas que registrar una vista que no existe aun en tu clase java.

Agregaremos una nueva vista xml a nuestro proyecto

Boton derecho en nuestra carpeta layout -> New -> Android XMl File

primer programa en android 6

damos en finalizar y ahora tendremos nuestra vista agregada

primer programa en android 7

Podemos elegir entre trabajar con esta vista con el asistente o mediante codigo, aqui lo haremos mediante codigo ya que estamos aprendiendo y siempre es mejor hacerlo a mano si estas aprendiendo algo nuevo.

Ahora vamos a agregar nuestra clase java que manejara esta vista xml, para esto vamos a

Boton derecho en src -> New -> Package ->

primer programa en android 8

y escribimos el nombre del paquete que escribimos al momento de crear nuestro proyecto ( sino sabes de que te hablo miras las imagenes de arriba, es la primer imagen :yum: ) y damos finish

Ahora vamos a crear la clase java.. dentro de este paquete damos

Boton Derecho -> New -> Class

primer programa en android 9

Escribimos un nombre para la clase, te sugiero que como a la vista xml le pusimos actividadprincipal a la clase java que lo maneja le pongas ActividadPrincipal.

Ahora el codigo de esta Actividad es el siguiente:

package com.jonathanmelgoza.primerprograma;

import android.app.Activity;
import android.os.Bundle;

public class ActividadPrincipal extends Activity{
  @Override
  public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.actividadprincipal);
  }
}

donde la linea

setContentView(R.layout.actividadprincipal);

enlaza la vista xml con esta clase mediante el objeto R ( hablaremos mas adelante de este objeto, basta saber que con el puedes acceder a los recursos :yum: )

Ahora solo falta registrar esta pantalla en el archivo AndroidManifest.xml ( recuerdas los 3 pasos para crear una pantalla ? )

Vamos al archivo AndroidManifest.xml en su forma de codigo ( damos doble click al archivo y en la pestaña de abajo seleccionar AndroidManifest.xml ) y dentro de <application .. > AQUI </application> escribimos lo siguiente

<activity android:name="com.jonathanmelgoza.primerprograma.ActividadPrincipal" android:label="@string/app_name">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>

donde en android:name escribimos la ruta de nuestra clase java ( esta clase hace referencia a nuestra vista xml lo que une los 3 pasos ), en action establecemos un

android.intent.action.MAIN

lo que indica que sera nuestra pantalla principal

y en category establecemos

android.intent.category.LAUNCHER

lo que indica que sera nuestro lanzador.

Ahora podemos ejecutar y ver que corre perfectamente!

Pantallas Principales y Pantallas Secundarias

Como dijimos antes, la pantalla que agregamos tenia ciertas propiedades en el AndroidManifest con el action y category que la hacian ser la actividad principal, pero y que si queremos agregar otra pantalla que no sea la principal sino una mas de la app?

Para agregar una pantalla secundaria a nuestra app basta con realizar los pasos 1 y 2 de la misma forma y en el paso 3 cambiar  los parametros dentro del tag <intent-filter> ( action y category ).

Por Ejemplo agregemos una segunda pantalla con el nombre de vista xml actividadsecundaria y el nombre de Clase java ActividadSecundaria ( recuerda enlazar la vista xml con la clase java mediante setContentView ) Ahora en el AndroidManifest solo al momento de registrar esa Actividad cambia los parametros de action  category por estos

<action android:name="com.jonathanmelgoza.primerprograma.ActividadSecundaria" />
<category android:name="android.intent.category.DEFAULT" />

y Ahora tenemos nuestras dos pantallas registradas en el AndroidManifest.xml si ejecutamos aun no podemos pasarnos a la segunda vista pero calma, esto lo haremos mas adelante, ahora vamos a agregar algunos componentes a nuestras vistas :yum:

Como agregar componentes a nuestras vistas

Vamos a agregar componentes a nuestra primer vista, la principal, en nuestro caso sera actividadprincipal.xml dentro de res/layout, nos vamos al codigo y agregaremos 2 textview, 1 edittext y 1 button, quedaria asi:

<?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" >

<TextView 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/hello" />

<TextView 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/mensaje" />

<EditText 
android:id="@+id/txt_mensaje"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<Button 
android:id="@+id/btn_enviar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btnEnviar" />

</LinearLayout>

Nota: Es importante definir la propiedad android:id a los controles que queiras acceder a ellos desde el codigo java. 

Te daras cuenta que te marca errores en las propiedades text al momento de utilizar la cadena @string, esto es porque en android las cadenas se aconsejan utilizar en un archivo separado del codigo, este es en res/values/strings.xml.

@string/ 

Para agregar cadenas de texto a strings.xml ( mediante codigo :yum: ) basta con dar doble click en el archivo, pasarte a la pestaña de codigo ( abajo en strings.xml ) y dentro de la tag <resources>AQUI</resources> agregar una nueva cadena de texto, en nuestro caso las que nos marcan error las agregaremos de la siguiente manera:

<string name="hello">Hola</string>
<string name="mensaje">Aplicacion Android</string>
<string name="btnEnviar">Enviar Texto</string>

y en las vistas xml podemos hacer referencias a ellas mediante @string/{name} por ejemplo

android:text="@string/hello"

Ahora ya no tenemos errores en nuestra vista actividadprincipal.xml !

Tambien nos agregaremos algunos componentes a nuestra vista secundaria llamada en mi caso actividadsecundaria.xml y quedaria asi:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/msj_textoRecibido" />

<TextView 
android:id="@+id/txv_mensaje"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

</LinearLayout>

( recuerdas como se agregaban las cadenas de texto? )

Como trabajar con botones definidos en XML desde las clases Java

Ahora que ya tenemos controles en nuestras 2 vistas ( la segunda aun no la podemos ver porque no sabemos como pasar de una actividad a otra :unamused: aun :yum: ya sigue.. ) lo que veremos sera como darle funcionalidad al boton de nuestra actividad principal, para esto vamos a nuestra clase java que maneja la actividad principal, en mi caso se llama ActividadPrincipal.java, y lo que haremos sera obtener el boton definido en la vista xml para trabajar con el desde java, esto se hace de la siguiente forma:

btn_enviar = (Button) findViewById(R.id.btn_enviar);

dentro del metodo onCreate y antes habiendo definido btn_enviar

Button btn_enviar;

esto igual con cualquier otro componente, por ejemplo .. nuestro edittext

txt_msj = (EditText) findViewById(R.id.txt_mensaje);

Ahora podemos manejar nuestro boton y nuestra caja de texto, esto nos servira para enviar informacion que el usuario escriba de la vista principal a la secundaria!

Como pasar a otra Actividad

Para pasar de una actividad a otra es muy facil! solo escribe la siguiente linea

 startActivity(new Intent(ActividadPrincipal.this,ActividadSecundaria.class));

donde startActivity necesita un nuevo intent y este a su vez necesita 2 parametros:

  1. Clase donde esta
  2. Clase a donde va

Y listo!

Esta linea la ponemos dentro del codigo del evento de click del boton en el metodo onCreate asi:

btn_enviar.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
      //LLAMAR A OTRA ACTIVIDAD
      startActivity(new Intent(ActividadPrincipal.this,ActividadSecundaria.class));
   }
});

Ahora nos movemos a la segunda Vista, pero no le enviamos la informacion que el usuario ingresa en la caja de texto ( EditText para ser exactos )

Como pasar informacion de una Actividad a Otra

Para pasar informacion de una pantalla a otra en android modificaremos un poco nuestro codigo del boton y quedaria asi

String msj = txt_msj.getText().toString();
Intent i = new Intent(ActividadPrincipal.this,ActividadSecundaria.class);
Bundle extras = new Bundle();
extras.putString("Mensaje",msj);
i.putExtras(extras);
startActivity(i);

donde lo que hacemos es obtener la cadena de texto que contiene el edittext al momento de hacer click sobre el boton ( recuerda que este codigo va dentro del evento click del boton ) y crea un nuevo intento, configura el objecto Bundle que se pasara junto con el intent a la otra actividad mediante el metodo putstring(), el primer parametro de pustring es un id y el segundo la informacion que se pasara. Finalmente iniciamos la actividad secundaria con los extras incluidos, ahora solo falta recibirlos!

Para recibir la informacion en la pantalla secundaria solo  basta con escribir el siguiente codigo dentro del metodo onCreate de esta actividad.

Bundle extras = getIntent().getExtras();
if(extras != null){
txv = (TextView) findViewById(R.id.txv_mensaje);
recibido = extras.getString("Mensaje");
txv.setText(recibido);
Log.d("recibido", recibido);
}

donde anteriormente debiste hacer definido la variable txv del tipo TextView y se obtienen los extras mediante el id que establecimos en la pantalla principal, finalmente se establece el texto recibido en el control textview de la segunda pantalla.

Donde esta el APK de la Aplicacion Android

Si utilizaste tu dispositivo android para el desarrollo de tu app seguro ya esta cargado en tu movil, solo asegurate que sea la ultima version. Si utilizaste el emulador de android y quieres cargarlo a un dispositivo o distribuirlo necesitas el archivo apk que es el empaquetado final, este archivo se encuentra en tu carpeta del proyecto en el folder bin con el formato

TuNombreProyecto.apk

Ya casi!!

No olvides regalarme un +1, like, tweet, compartir este contenido o comentar cualquier duda :neckbeard:

Ahora tal ves te interese saber como cambiar el icono a una aplicación android :sunglasses:

Primer Programa en Android

Clic para valorar esta información
[Total: 0 Promedio: 0]