Aplicacion movil

16
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN Materia Desarrollo de Aplicaciones III Tema Aplicación Móvil con Acceso a Datos Integrantes del Equipo: Adriana Berenice Renovato Ceja Grado: 5 Grupo: “B” Nombre del Docente : Eloy Contreras de Lira Fecha de entrega : 24/03/2014

Transcript of Aplicacion movil

Page 1: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Materia

Desarrollo de Aplicaciones III

Tema

Aplicación Móvil con Acceso a Datos

Integrantes del Equipo: Adriana Berenice Renovato Ceja

Grado: 5 Grupo: “B” Nombre del Docente : Eloy Contreras de Lira Fecha de entrega : 24/03/2014

Page 2: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Pasos para la creación de una Aplicación Móvil con

Acceso a Datos. Paso 1. Primero se ejecuta el programa de Eclipse

Paso 2. Después aparece la interfaz de eclipse y selecciona la pestaña de tiene el

nombre de File y en la lista desplegable New y para finalizar presiona Android

Application Project que significa (proyecto de aplicación Android).

Page 3: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Paso 3. Después aparece una ventana donde se pondrá el nombre de cómo se

va a llamar la aplicación y del proyecto y pulsamos el botón de Next a todas las

ventanas que vallan apareciendo y al concluir

Paso 4.Como vemos nuestro paquete ya fue creado donde aparecen una serie de

carpetas cada una de estas tienen diferente funcion.

Page 4: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Paso 5. Es una de las carpetas principales del proyecto, por no decir la más

importante. En ella residen todos los archivos de código fuente Java que

componen la aplicación, entre ellos, las Actividades (clases que extienden de

Activity).

Paso 6. Carpeta bin Contiene los archivos de la aplicación compilados, también

contiene el .apk que es la aplicación que se pasa al móvil para que pueda

funcionar en este.

Paso 7. Subcarpeta Layout que también podrá contener otras subcarpetas. En su

raíz, contendrá los descriptores xml de las vistas. Las subcarpetas podrán

contener layouts específicos para pantallas.

Estos son los archivos xml que se utilizaran para crear la interfaz grafica de la

aplicación móvil.

Page 5: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

1. Creación de la Base de Datos

Para crean nuestra aplicación móvil con acceso a datos lo primero es crear

nuestra base de datos para que al momento de ejecutar la dicha aplicación en el

móvil los datos que se ingresen se vallan guardando correctamente, se crea una

clase llamada Clase DataBaseHelper.java.

Se agregan las librerías que se utilizaran para que la base de datos se cree,

también se declaran las variables que se utilizaran en la B.D, las cuales estas

servirán para que se guardan la información correspondiente a cada campo.

package Agenda.com;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME="Agenda01";

public static final String NOMBRE="nombre";

public static final String TELEFONO="telefono";

public static final String EMAIL="email";

public static final String DIRECCION="direccion";

public DataBaseHelper(Context context)

{

super(context,DATABASE_NAME,null,1);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("CREATE TABLE AgendaContactos(_id INTEGER PRIMARY KEY

AUTOINCREMENT, nombre TEXT, telefono TEXT, email TEXT,direccion TEXT);");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

android.util.Log.v("Constante", "Actualiza la base de datos y destruye la

base de datos antigua con el mismo nombre");

db.execSQL("DROP table if exists AgendaContactos");

onCreate(db);

}

}

Page 6: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

2. Creación de la Clase Nuevo.java

Esta clase es creada para dar de alta un nuevo usuario o contacto en Agenda. Una vez

que fue creada nuestra B.D, los datos que son ingresados por el usuario serán

guardados.

Las librerías que se van creando son dependiendo del código que se valla ingresando,

son muy importantes para que nuestra aplicación tenga funcionamiento, en esta también

se hace la declaración de las variables, lo cual se hace la comparación con el nombre de

estas mismas.

Se manda llamar el método agregar, este manda un mensaje de confirmación “De que el

contacto fue guardado correctamente”.

package proyectagenda.com;

import android.app.Activity;

import android.content.ContentValues;

import android.content.Intent;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class Nuevo extends Activity{

public EditText nombre,telefono,email,direccion;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.agregarususario);

nombre=(EditText)findViewById(R.id.nombre);

telefono=(EditText)findViewById(R.id.telefono);

direccion=(EditText)findViewById(R.id.direccion);

email=(EditText)findViewById(R.id.email);

}

private void insert(String nombre, String telefono, String email,

String direccion){

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

ContentValues cv=new ContentValues();

cv.put(DataBaseHelper.NOMBRE, nombre);

Page 7: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

cv.put(DataBaseHelper.TELEFONO, telefono);

cv.put(DataBaseHelper.EMAIL, email);

cv.put(DataBaseHelper.DIRECCION, direccion);

db.insert("AgendaContactos",DataBaseHelper.NOMBRE,cv);

db.close();

}

public void agregar(View b)

{

insert(nombre.getText().toString(),telefono.getText().toString(),email.ge

tText().toString(),direccion.getText().toString());

Toast.makeText(getApplicationContext(),

"Contacto agregado correctamente",

Toast.LENGTH_LONG).show();

nombre.setText("");

email.setText("");

direccion.setText("");

telefono.setText("");

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater=getMenuInflater();

inflater.inflate(R.layout.menu1, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2: Intent intent = new

Intent(this,AgendaAndroidActivity.class);

startActivity(intent);

break;

}

return true }

}

Page 8: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

3. Creación de la Clase buscar.java

Esta clase le permite al usuario buscar o consultar en su aplicación aquellos

contactos que ya han sido registrados y guardados en la B.D. En esta clase puede

buscar al contacto para hacerle una llamada, eliminarlo o modificarlo.

El código que se utilizaría seria el siguiente:

package Agenda.com;

import proyectagenda.com.R;

import Agenda.com.buscar;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.net.Uri;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class buscar extends Activity{

public EditText nombre;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.buscarcontacto);

nombre=(EditText)findViewById(R.id.nombre);

}

public void buscar(View b)

{

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] campos = new String[] {"nombre"};

String[] args = new String[] {nombre.getText().toString()};

Cursor c = db.query("AgendaContactos", campos, "nombre=?",

args, null, null, null);

if (c.moveToFirst()) {

Intent it=new Intent(this,Detalle.class);

Page 9: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

it.putExtra("nombre", nombre.getText().toString());

startActivity(it);

}

else

{

Toast.makeText(getApplicationContext(),

"El contacto no existe.!",

Toast.LENGTH_LONG).show();

db.close();

}

}

public String recuperanum()

{

String numero="";

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] campos = new String[] {"telefono"};

String[] args = new String[] {nombre.getText().toString()};

Cursor c = db.query("AgendaContactos", campos, "nombre=?",

args, null, null, null);

if (c.moveToFirst()) {

do {

String telefono = c.getString(0);

numero=telefono;

} while(c.moveToNext());

}

else

{

Toast.makeText(getApplicationContext(),

"error :(", Toast.LENGTH_LONG).show();

db.close();

}

return numero;

}

public void llamar(View b)

{

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] campos = new String[] {"nombre"};

String[] args = new String[] {nombre.getText().toString()};

Cursor c = db.query("AgendaContactos", campos, "nombre=?",

args, null, null, null);

if (c.moveToFirst()) {

AlertDialog.Builder alertDialog = new

Page 10: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

AlertDialog.Builder(buscar.this);

alertDialog.setMessage ("¿Desea realizar llamada?");

alertDialog.setTitle ("Llamar a contacto...");

alertDialog.setIcon(android.R.drawable.ic_dialog_alert);

alertDialog.setCancelable(false);

alertDialog.setPositiveButton("SI", new

DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int which)

{

try

{

String numero=recuperanum();

String number = "tel:" + numero.trim();

Toast.makeText(getApplicationContext(),

"Llamando al " + numero.trim(),

Toast.LENGTH_LONG).show();

Intent callIntent = new Intent(Intent.ACTION_CALL,

Uri.parse(number));

startActivity(callIntent);

}

catch (Exception e)

{

Toast.makeText(getApplicationContext(),

"Llamada bloqueada",

Toast.LENGTH_LONG).show();

}

}

});

alertDialog.setNegativeButton("No", new

DialogInterface.OnClickListener()

{

public void onClick(DialogInterface dialog, int which)

{

Toast.makeText(getApplicationContext(),

"Llamada cancelada", Toast.LENGTH_LONG).show();

}

});

alertDialog.show();

}

else

{

Toast.makeText(getApplicationContext(),

"El contacto no existe.!",

Toast.LENGTH_LONG).show();

db.close();

}}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater=getMenuInflater();

inflater.inflate(R.layout.menu1, menu);

return true;

}

Page 11: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2: Intent intent = new

Intent(this,AgendaAndroidActivity.class);

startActivity(intent);

break;

}

return true;

}

}

4. Creación de la Clase Llamarcontacto.java

Esta clase lo que hace es que se selecciona un contacto para esto manda llamar

el método buscar, el código que se utilizara es el siguiente:

package Agenda.com;

import android.app.Activity;

public class Llamacontacto extends Activity{

}

5. Creación de la Clase EliminarContacto.java

La creación de esta clase tiene como función borrar contactos que ya no se

utilicen o que no sean tan importantes en nuestra Agenda, o tan simple que ya no

queramos que aparezcan registrados. El código es el siguiente para que esta

función de eliminar se ejecute al momento de utilizar nuestra aplicación móvil.

La funcionalidad del código es que hace la conexión a la B.D, donde se manda

llamar el método eliminar donde se selecciona el nombre de la persona, lo cual

manda un mensaje de confirmación.

package Agenda.com;

import proyectagenda.com.R;

import android.app.Activity;

import android.content.Intent;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

Page 12: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

import android.widget.EditText;

import android.widget.Toast;

public class EliminarContacto extends Activity{

EditText nombre;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.eliminarcontacto);

nombre=(EditText)findViewById(R.id.nombre);

}

public void eliminar(View b)

{

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] args = new String[]{nombre.getText().toString()};

db.execSQL("DELETE FROM AgendaContactos WHERE nombre=?", args);

Toast.makeText(getApplicationContext(),

"Contacto eliminado con exito.!",

Toast.LENGTH_LONG).show();

db.close();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater=getMenuInflater();

inflater.inflate(R.layout.menu1, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2: Intent intent = new

Intent(this,AgendaAndroidActivity.class);

startActivity(intent);

break;

}

return true;

}

}

Page 13: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

6. Creación de la Clase Modificar1.java

Para modificar un registro, para ello se necesitaran crear dos clases una llama

Modificar1 y otra Modificar2.

Modificar tiene como funcion hacer modificaciones a cualquier dato que se quiera

corregir, o bien que este mal escrito.

package Agenda.com;

import proyectagenda.com.R;

import android.app.Activity;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class Modificar1 extends Activity{

public EditText nombre;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.modificarcontacto);

nombre=(EditText)findViewById(R.id.nombre);

}

public void modificar(View b)

{

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] campos = new String[] {"nombre"};

String[] args = new String[] {nombre.getText().toString()};

Cursor c = db.query("AgendaContactos", campos, "nombre=?",

args, null, null, null);

//Nos aseguramos de que existe al menos un registro

if (c.moveToFirst()) {

Intent it=new Intent(this,Modificar2.class);

it.putExtra("nombre", nombre.getText().toString());

startActivity(it);

}

else

{

Page 14: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Toast.makeText(getApplicationContext(),

"El contacto especificado no existe.!",

Toast.LENGTH_LONG).show();

db.close();

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater=getMenuInflater();

inflater.inflate(R.layout.menu1, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2: Intent intent = new

Intent(this,AgendaAndroidActivity.class);

startActivity(intent);

break;

}

return true;

}

}

7. Creación de la Clase Modificar2.java

package Agenda.com;

import proyectagenda.com.R;

import android.app.Activity;

import android.content.ContentValues;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class Modificar2 extends Activity{

public String nombre;

public EditText name,tel,ema,dir;

Page 15: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.modficacion02);

name=(EditText)findViewById(R.id.nombre);

tel=(EditText)findViewById(R.id.telefono);

dir=(EditText)findViewById(R.id.direccion);

ema=(EditText)findViewById(R.id.email);

Bundle bundle=getIntent().getExtras();

nombre=bundle.getString("nombre");

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

String[] campos = new String[]

{"nombre","telefono","email","direccion"};

String[] args = new String[] {nombre};

Cursor c = db.query("AgendaContactos", campos, "nombre=?",

args, null, null, null);

//Nos aseguramos de que existe al menos un registro

if (c.moveToFirst()) {

//Recorremos el cursor hasta que no haya más registros

do {

String nombre = c.getString(0);

String telefono = c.getString(1);

String email=c.getString(2);

String direccion=c.getString(3);

name.setText(nombre);

tel.setText(telefono);

ema.setText(email);

dir.setText(direccion);

} while(c.moveToNext());

}

else

{

Toast.makeText(getApplicationContext(),

"Ha ocurrido un error :(",

Toast.LENGTH_LONG).show();

db.close();

}

}

public void modificar(View b)

{

Page 16: Aplicacion movil

UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

DataBaseHelper dbh=new DataBaseHelper(this);

SQLiteDatabase db= dbh.getWritableDatabase();

ContentValues valores = new ContentValues();

valores.put("telefono",tel.getText().toString());

valores.put("email", ema.getText().toString());

valores.put("direccion", dir.getText().toString());

String[] args = new String[]{name.getText().toString()};

db.update("AgendaContactos", valores, "nombre=?", args);

Toast.makeText(getApplicationContext(),

"Contacto se ha modificado exitosamente!!",

Toast.LENGTH_LONG).show();

db.close();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater=getMenuInflater();

inflater.inflate(R.layout.menu2, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent i;

switch (item.getItemId()) {

case R.id.item2: Intent intent = new

Intent(this,AgendaAndroidActivity.class);

startActivity(intent);

}

switch (item.getItemId()) {

case R.id.item3: Intent it = new

Intent(this,Modificar1.class);

startActivity(it);

break;

}

return true;}}